comparison dmd/declaration.h @ 1602:a413ae7329bf

Merge DMD r243: some harmonization with D2 dmd --- dmd/aggregate.h | 24 ++++- dmd/attrib.c | 63 ++++++---- dmd/attrib.h | 10 +- dmd/declaration.h | 5 +- dmd/func.c | 337 ++++++++++++++++++++++------------------------------- dmd/mars.c | 2 +- dmd/mars.h | 7 + dmd/mtype.h | 13 ++- dmd/parse.c | 32 ++++- dmd/parse.h | 14 ++- dmd/scope.h | 2 +- 11 files changed, 263 insertions(+), 246 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:19 -0300
parents def7a1d494fd
children 207a8a438dea
comparison
equal deleted inserted replaced
1601:49722e6e6e05 1602:a413ae7329bf
102 102
103 struct Declaration : Dsymbol 103 struct Declaration : Dsymbol
104 { 104 {
105 Type *type; 105 Type *type;
106 Type *originalType; // before semantic analysis 106 Type *originalType; // before semantic analysis
107 unsigned storage_class; 107 StorageClass storage_class;
108 enum PROT protection; 108 enum PROT protection;
109 enum LINK linkage; 109 enum LINK linkage;
110 int inuse; // used to detect cycles 110 int inuse; // used to detect cycles
111 111
112 Declaration(Identifier *id); 112 Declaration(Identifier *id);
258 Initializer *init; 258 Initializer *init;
259 unsigned offset; 259 unsigned offset;
260 int noscope; // no scope semantics 260 int noscope; // no scope semantics
261 #if DMDV2 261 #if DMDV2
262 FuncDeclarations nestedrefs; // referenced by these lexically nested functions 262 FuncDeclarations nestedrefs; // referenced by these lexically nested functions
263 bool isargptr; // if parameter that _argptr points to
263 #else 264 #else
264 int nestedref; // referenced by a lexically nested function 265 int nestedref; // referenced by a lexically nested function
265 #endif 266 #endif
266 int ctorinit; // it has been initialized in a ctor 267 int ctorinit; // it has been initialized in a ctor
267 int onstack; // 1: it has been allocated on the stack 268 int onstack; // 1: it has been allocated on the stack
710 // functions 711 // functions
711 #else 712 #else
712 int nestedFrameRef; // !=0 if nested variables referenced 713 int nestedFrameRef; // !=0 if nested variables referenced
713 #endif 714 #endif
714 715
715 FuncDeclaration(Loc loc, Loc endloc, Identifier *id, enum STC storage_class, Type *type); 716 FuncDeclaration(Loc loc, Loc endloc, Identifier *id, StorageClass storage_class, Type *type);
716 Dsymbol *syntaxCopy(Dsymbol *); 717 Dsymbol *syntaxCopy(Dsymbol *);
717 void semantic(Scope *sc); 718 void semantic(Scope *sc);
718 void semantic2(Scope *sc); 719 void semantic2(Scope *sc);
719 void semantic3(Scope *sc); 720 void semantic3(Scope *sc);
720 // called from semantic3 721 // called from semantic3