Hi, This patch merges the D front-end implementation with dmd upstream c185f9df1.
Adds new virtual isVersionCondition, this is so that in the code generation pass, a ConditionDeclaration's condition can be identified without requiring a Visitor function. Bootstrapped and regression tested on x86_64-linux-gnu. Committed to trunk as r270300. -- Iain ---
diff --git a/gcc/d/dmd/MERGE b/gcc/d/dmd/MERGE index 800be95e4e6..be0c5a50da2 100644 --- a/gcc/d/dmd/MERGE +++ b/gcc/d/dmd/MERGE @@ -1,4 +1,4 @@ -d7ed327edb0b01ad56e7e73e77b3401cd565675e +c185f9df1789456c7d88d047f2df23dd784f1182 The first line of this file holds the git revision number of the last merge done from the dlang/dmd repository. diff --git a/gcc/d/dmd/cond.h b/gcc/d/dmd/cond.h index 891969be48d..8e33b16a9da 100644 --- a/gcc/d/dmd/cond.h +++ b/gcc/d/dmd/cond.h @@ -39,6 +39,7 @@ public: virtual Condition *syntaxCopy() = 0; virtual int include(Scope *sc, ScopeDsymbol *sds) = 0; virtual DebugCondition *isDebugCondition() { return NULL; } + virtual VersionCondition *isVersionCondition() { return NULL; } virtual void accept(Visitor *v) { v->visit(this); } }; @@ -91,6 +92,7 @@ public: VersionCondition(Module *mod, unsigned level, Identifier *ident); int include(Scope *sc, ScopeDsymbol *sds); + VersionCondition *isVersionCondition() { return this; } void accept(Visitor *v) { v->visit(this); } };