# HG changeset patch # User Tomas Lindquist Olsen # Date 1217772976 -7200 # Node ID 6989f040ea06904e64a08538af7a0c257ec28a8e # Parent 5bd9a617d29775e3db34dc2705de7ff9c91ad7d0# Parent ea991021a56aa26804ba84078b32c0f011c25ae0 stupid merges diff -r ea991021a56a -r 6989f040ea06 gen/toir.cpp --- a/gen/toir.cpp Sun Aug 03 14:03:15 2008 +0200 +++ b/gen/toir.cpp Sun Aug 03 16:16:16 2008 +0200 @@ -60,19 +60,17 @@ Logger::println("VarDeclaration %s", vd->toChars()); // _arguments - if (vd->ident == Id::_arguments) + if (vd->ident == Id::_arguments && p->func()->_arguments) { Logger::println("Id::_arguments"); LLValue* v = p->func()->_arguments; - assert(v); return new DVarValue(type, vd, v, true); } // _argptr - else if (vd->ident == Id::_argptr) + else if (vd->ident == Id::_argptr && p->func()->_argptr) { Logger::println("Id::_argptr"); LLValue* v = p->func()->_argptr; - assert(v); return new DVarValue(type, vd, v, true); } // _dollar diff -r ea991021a56a -r 6989f040ea06 gen/tollvm.cpp --- a/gen/tollvm.cpp Sun Aug 03 14:03:15 2008 +0200 +++ b/gen/tollvm.cpp Sun Aug 03 16:16:16 2008 +0200 @@ -556,7 +556,7 @@ { if (isaPointer(ptr->getType())) { const LLType* data = ptr->getType()->getContainedType(0); - return data->isFirstClassType() && !data->isAggregateType(); + return data->isFirstClassType() && !(isaStruct(data) || isaArray(data)); } return false; } diff -r ea991021a56a -r 6989f040ea06 tests/mini/compile_nested1.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/compile_nested1.d Sun Aug 03 16:16:16 2008 +0200 @@ -0,0 +1,1 @@ +void append(lazy char[] exp) { char[] s = exp; }