comparison ir/irfunction.cpp @ 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 d8357f7004ca
children c7d7e2282ba3
comparison
equal deleted inserted replaced
485:50f6e2337a6b 486:a34078905d01
11 11
12 IrFunction::IrFunction(FuncDeclaration* fd) 12 IrFunction::IrFunction(FuncDeclaration* fd)
13 { 13 {
14 decl = fd; 14 decl = fd;
15 15
16 Type* t = DtoDType(fd->type); 16 Type* t = fd->type->toBasetype();
17 assert(t->ty == Tfunction); 17 assert(t->ty == Tfunction);
18 type = (TypeFunction*)t; 18 type = (TypeFunction*)t;
19 func = NULL; 19 func = NULL;
20 allocapoint = NULL; 20 allocapoint = NULL;
21 21
22 queued = false; 22 queued = false;
23 defined = false; 23 defined = false;
24 24
25 retArg = NULL; 25 retArg = NULL;
26 thisVar = NULL; 26 thisArg = NULL;
27 nestArg = NULL;
28
27 nestedVar = NULL; 29 nestedVar = NULL;
30
28 _arguments = NULL; 31 _arguments = NULL;
29 _argptr = NULL; 32 _argptr = NULL;
33
30 dwarfSubProg = NULL; 34 dwarfSubProg = NULL;
31 35
32 srcfileArg = NULL; 36 srcfileArg = NULL;
33 msgArg = NULL; 37 msgArg = NULL;
34 38