mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-18 13:53:14 +01:00
Merge dmd-1.074 into ldc.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
|
||||
// Compiler implementation of the D programming language
|
||||
// Copyright (c) 1999-2011 by Digital Mars
|
||||
// Copyright (c) 1999-2012 by Digital Mars
|
||||
// All Rights Reserved
|
||||
// written by Walter Bright
|
||||
// http://www.digitalmars.com
|
||||
@@ -932,8 +932,12 @@ struct BinExp : Expression
|
||||
|
||||
struct BinAssignExp : BinExp
|
||||
{
|
||||
BinAssignExp(Loc loc, enum TOK op, int size, Expression *e1, Expression *e2);
|
||||
int checkSideEffect(int flag);
|
||||
BinAssignExp(Loc loc, enum TOK op, int size, Expression *e1, Expression *e2)
|
||||
: BinExp(loc, op, size, e1, e2)
|
||||
{
|
||||
}
|
||||
|
||||
Expression *semantic(Scope *sc);
|
||||
};
|
||||
|
||||
/****************************************************************/
|
||||
@@ -1031,6 +1035,7 @@ struct DelegateExp : UnaExp
|
||||
{
|
||||
FuncDeclaration *func;
|
||||
Module* m; // starting point for overload resolution
|
||||
int hasOverloads;
|
||||
|
||||
DelegateExp(Loc loc, Expression *e, FuncDeclaration *func);
|
||||
Expression *semantic(Scope *sc);
|
||||
@@ -1446,10 +1451,10 @@ struct ConstructExp : AssignExp
|
||||
#endif
|
||||
|
||||
#define ASSIGNEXP(op) \
|
||||
struct op##AssignExp : BinExp \
|
||||
struct op##AssignExp : BinAssignExp \
|
||||
{ \
|
||||
op##AssignExp(Loc loc, Expression *e1, Expression *e2); \
|
||||
Expression *semantic(Scope *sc); \
|
||||
S(Expression *semantic(Scope *sc);) \
|
||||
Expression *interpret(InterState *istate, CtfeGoal goal = ctfeNeedRvalue); \
|
||||
X(void buildArrayIdent(OutBuffer *buf, Expressions *arguments);) \
|
||||
X(Expression *buildArrayLoop(Parameters *fparams);) \
|
||||
@@ -1460,6 +1465,7 @@ struct op##AssignExp : BinExp \
|
||||
};
|
||||
|
||||
#define X(a) a
|
||||
#define S(a) a
|
||||
ASSIGNEXP(Add)
|
||||
ASSIGNEXP(Min)
|
||||
ASSIGNEXP(Mul)
|
||||
@@ -1468,15 +1474,28 @@ ASSIGNEXP(Mod)
|
||||
ASSIGNEXP(And)
|
||||
ASSIGNEXP(Or)
|
||||
ASSIGNEXP(Xor)
|
||||
#undef S
|
||||
|
||||
#if DMDV2
|
||||
#define S(a) a
|
||||
ASSIGNEXP(Pow)
|
||||
#undef S
|
||||
#endif
|
||||
|
||||
#undef X
|
||||
|
||||
#define X(a)
|
||||
#define S(a)
|
||||
|
||||
ASSIGNEXP(Shl)
|
||||
ASSIGNEXP(Shr)
|
||||
ASSIGNEXP(Ushr)
|
||||
#undef S
|
||||
|
||||
#define S(a) a
|
||||
ASSIGNEXP(Cat)
|
||||
|
||||
#undef S
|
||||
#undef X
|
||||
#undef ASSIGNEXP
|
||||
#undef ASSIGNEXP_TOELEM
|
||||
|
||||
Reference in New Issue
Block a user