mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 05:29:24 +00:00
Do not return true from isSized for things without a size (like functions and
labels) even though they are concrete. This fixes the DSA regressions from last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19807 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d23a298f28
commit
49266b2afa
@ -201,7 +201,16 @@ public:
|
||||
/// TargetData subsystem to do this.
|
||||
///
|
||||
bool isSized() const {
|
||||
return !isAbstract() || ID == PointerTyID || isSizedDerivedType();
|
||||
// If it's a primative, it is always sized.
|
||||
if (ID >= BoolTyID && ID <= DoubleTyID || ID == PointerTyID)
|
||||
return true;
|
||||
// If it is not something that can have a size (e.g. a function or label),
|
||||
// it doesn't have a size.
|
||||
if (ID != StructTyID && ID != ArrayTyID && ID != PackedTyID)
|
||||
return false;
|
||||
// If it is something that can have a size and it's concrete, it definitely
|
||||
// has a size, otherwise we have to try harder to decide.
|
||||
return !isAbstract() || isSizedDerivedType();
|
||||
}
|
||||
|
||||
/// getPrimitiveSize - Return the basic size of this type if it is a primitive
|
||||
|
Loading…
Reference in New Issue
Block a user