- Oct 06, 2008
-
-
Chris Lattner authored
constant lvalue. Implement this in codegen by moving the code out of CGBuiltin into EmitConstantExpr. llvm-svn: 57163
-
Chris Lattner authored
llvm-svn: 57162
-
Chris Lattner authored
it is possible that a builtin could sometimes be folded (e.g. __builtin_clz) if it's operand is a constant. llvm-svn: 57161
-
Chris Lattner authored
depend on the value of this flag, it should depend on whether tryEvaluate is able to *actually* fold a builtin. llvm-svn: 57160
-
Chris Lattner authored
which is checking for something that can be inconsistent with what we can constant fold. llvm-svn: 57159
-
Chris Lattner authored
interface into the constant folding interface. llvm-svn: 57158
-
Chris Lattner authored
llvm-svn: 57157
-
Chris Lattner authored
do it instead. We should still handle __builtin_nan etc, but don't yet. This fixes incorrect evaluation of __builtin_constant_p, a FIXME. llvm-svn: 57156
-
Chris Lattner authored
constants for them, just use the constant evaluator to do the job. This also fixes crashes on 'unknown constant builtins'. llvm-svn: 57155
-
Chris Lattner authored
llvm-svn: 57154
-
Chris Lattner authored
condition as a constant even if the unevaluated side is a not a constant. We don't do this when extensions are off, and we emit a warning when this happens: t.c:22:11: warning: expression is not a constant, but is accepted as one by GNU extensions short t = __builtin_constant_p(5353) ? 42 : somefunc(); ^ ~~~~~~~~~~ suggestions for improvement are welcome. This is obviously horrible, but is required for real-world code. llvm-svn: 57153
-
Chris Lattner authored
__builtin_constant_p properly, and add some scaffolding for FloatExprEvaluator to eventually handle huge_val and inf. llvm-svn: 57152
-
Chris Lattner authored
code. llvm-svn: 57151
-
Anders Carlsson authored
llvm-svn: 57150
-
Chris Lattner authored
llvm-svn: 57149
-
Chris Lattner authored
llvm-svn: 57148
-
Chris Lattner authored
llvm-svn: 57147
-
Zhongxing Xu authored
llvm-svn: 57146
-
Anders Carlsson authored
llvm-svn: 57145
-
Anders Carlsson authored
llvm-svn: 57144
-
Argyrios Kyrtzidis authored
llvm-svn: 57143
-
Anders Carlsson authored
llvm-svn: 57142
-
Argyrios Kyrtzidis authored
llvm-svn: 57141
-
- Oct 05, 2008
-
-
Chris Lattner authored
llvm-svn: 57140
-
Chris Lattner authored
target indep code. llvm-svn: 57139
-
Chris Lattner authored
llvm-svn: 57138
-
Chris Lattner authored
llvm-svn: 57137
-
Argyrios Kyrtzidis authored
No funcitonality change. llvm-svn: 57136
-
Daniel Dunbar authored
llvm-svn: 57135
-
Chris Lattner authored
llvm-svn: 57134
-
Daniel Dunbar authored
gcc). llvm-svn: 57133
-
Chris Lattner authored
target indep code. Note that this changes functionality on PIC16: it defines __INT_MAX__ correctly for it, and it changes sizeof(long) to 16-bits (to match the size of pointer). llvm-svn: 57132
-
Argyrios Kyrtzidis authored
sizeof(int()) -> "int()" is type-id sizeof(int()+1) -> "int()+1" is expression. llvm-svn: 57131
-
Chris Lattner authored
integer size #defines over to the Preprocessor. llvm-svn: 57130
-
Chris Lattner authored
llvm-svn: 57129
-
Chris Lattner authored
then target specific. llvm-svn: 57128
-
Chris Lattner authored
llvm-svn: 57127
-
Chris Lattner authored
of GCC's headers. This impacts people that run clang in Tiger systems. llvm-svn: 57126
-
Argyrios Kyrtzidis authored
Found a subtle bug caused by an implicit enum-to-bool conversion (of the TentativeParsingResult enum). This was the motivation of the following changes: -'TentativeParsingResult' enum is replaced by a 'TPResult' class that basically encapsulates the enum. -TPR_true, TPR_false, TPR_ambiguous, and TPR_error enum constants are replaced by TPResult::True(), TPResult::False(), etc. calls that return a TPResult object. -Also fixed the subtle bug in Parser::isCXXFunctionDeclarator (caught by the above changes as a compilation error). llvm-svn: 57125
-
Chris Lattner authored
in tblgen. This is PR2827, thanks to Waldemar Knorr for tracking this down. llvm-svn: 57124
-