mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-04 00:55:49 +03:00
Fixed root cause for Invalid BitCasts. DtoCanLoad continues to return false
for aggregates even though llvm 2.4svn could load them.
This commit is contained in:
parent
b1e8162b7b
commit
44931493f6
2 changed files with 4 additions and 3 deletions
|
@ -549,7 +549,8 @@ void DtoStore(LLValue* src, LLValue* dst)
|
|||
bool DtoCanLoad(LLValue* ptr)
|
||||
{
|
||||
if (isaPointer(ptr->getType())) {
|
||||
return ptr->getType()->getContainedType(0)->isFirstClassType();
|
||||
const LLType* data = ptr->getType()->getContainedType(0);
|
||||
return data->isFirstClassType() && !data->isAggregateType();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -128,8 +128,8 @@ Expression *Type::getTypeInfo(Scope *sc)
|
|||
}
|
||||
}
|
||||
e = new VarExp(0, t->vtinfo);
|
||||
e = e->addressOf(sc);
|
||||
e->type = t->vtinfo->type; // do this so we don't get redundant dereference
|
||||
//e = e->addressOf(sc);
|
||||
//e->type = t->vtinfo->type; // do this so we don't get redundant dereference
|
||||
return e;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue