Mercurial > projects > ldc
diff gen/llvmhelpers.h @ 486:a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 10 Aug 2008 08:37:38 +0200 |
parents | aa8c050dfd19 |
children | f8c979770af3 |
line wrap: on
line diff
--- a/gen/llvmhelpers.h Sat Aug 09 09:03:52 2008 +0200 +++ b/gen/llvmhelpers.h Sun Aug 10 08:37:38 2008 +0200 @@ -38,9 +38,18 @@ // leaves a monitor lock void DtoLeaveMonitor(LLValue* v); -// nested variable/class helpers -LLValue* DtoNestedContext(FuncDeclaration* func); -DValue* DtoNestedVariable(Type* astype, VarDeclaration* vd); +// nested variable and context helpers + +// gets the context value for a call to a nested function or newing a class, with arbitrary nesting +LLValue* DtoNestedContext(Loc loc, Dsymbol* sym); + +// gets the dvalue of a nested variable with arbitrary nesting +DValue* DtoNestedVariable(Loc loc, Type* astype, VarDeclaration* vd); + +// old nested stuff +// LLValue* DtoNestedContext(Loc loc, FuncDeclaration* func); +// LLValue* DtoNestedContext(Loc loc, ClassDeclaration* cd); +// DValue* DtoNestedVariable(Loc loc, Type* astype, VarDeclaration* vd); // basic operations void DtoAssign(Loc& loc, DValue* lhs, DValue* rhs);