- Oct 07, 2008
-
-
Zhongxing Xu authored
llvm-svn: 57240
-
Zhongxing Xu authored
llvm-svn: 57225
-
Ted Kremenek authored
llvm-svn: 57222
-
Argyrios Kyrtzidis authored
llvm-svn: 57220
-
Argyrios Kyrtzidis authored
Simplify handling of direct initializers by letting Sema::AddInitializerToDecl handle conversions, instead of using Sema::ActOnCXXTypeConstructExpr. Additional benefit is that diagnostics are the same for both direct-initialization and copy-initialization. In the case of "int x( expression );": -The Init expression of VarDecl 'x' will be the expression inside the parentheses. -VarDecl::hasCXXDirectInitializer for VarDecl 'x' will return true to let clients distinguish from "int x = expression ;". llvm-svn: 57219
-
Ted Kremenek authored
Modified DeclGroupRef to always load/store the internal pointer value as Decl*. This hopefully will obviate any concerns with violating strict type-aliasing issues. llvm-svn: 57213
-
- Oct 06, 2008
-
-
Ted Kremenek authored
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of an Objective-C foreach statement. llvm-svn: 57209
-
Ted Kremenek authored
Use DeclStmt::getSolitaryDecl() instead of DeclStmt::getDecl() when processing the Decl of a @catch statement. llvm-svn: 57208
-
Ted Kremenek authored
When processing Objective-C foreach statements, first check to see if the statement has a DeclStmt with a single Decl. Afterwards, use DeclStmt::getSolitaryDecl() to access that Decl (thus avoiding an assertion being triggered). These changes remove an unneeded use of ScopedDecl::getNextDeclarator() and DeclStmt::getDecl(). llvm-svn: 57207
-
Ted Kremenek authored
llvm-svn: 57206
-
Ted Kremenek authored
This patch precedes removing getDecl() DeclStmt::entirely. llvm-svn: 57205
-
Ted Kremenek authored
llvm-svn: 57204
-
Ted Kremenek authored
Use "unsigned" instead of "int" for i to remove a "comparison between unsigned and signed" warning (potential integer overflow). llvm-svn: 57201
-
Anders Carlsson authored
llvm-svn: 57198
-
Ted Kremenek authored
Use the DeclStmt::decl_iterator to get the first decl in a DeclStmt instead of using DeclStmt::getDecl(). llvm-svn: 57196
-
Ted Kremenek authored
Don't use DeclStmt::getDecl(); this will eventually disappear. Just fetch the first decl using the DeclStmt::decl_iterator. llvm-svn: 57194
-
Ted Kremenek authored
llvm-svn: 57192
-
Ted Kremenek authored
Added PrintRawDeclStmt; use this method to print out DeclStmt instead of using PrintRawDecl (which falsely assumes DeclStmts have only one Decl). llvm-svn: 57191
-
Ted Kremenek authored
llvm-svn: 57190
-
Ted Kremenek authored
Use DeclStmt::decl_iterator instead of using Decl::getDecl(). Soon DeclStmts will wrap group of Decls. Added FIXME. llvm-svn: 57189
-
Argyrios Kyrtzidis authored
Add a FIXME until class constructors are supported. llvm-svn: 57188
-
Argyrios Kyrtzidis authored
This is how this kind of initializers appear in the AST: -The Init expression of the VarDecl is a functional type construction (of the VarDecl's type). -The new VarDecl::hasCXXDirectInitializer() returns true. e.g, for "int x(1);": -VarDecl 'x' has Init with expression "int(1)" (CXXFunctionalCastExpr). -hasCXXDirectInitializer() of VarDecl 'x' returns true. A major benefit is that clients that don't particularly care about which exactly form was the initializer can handle both cases without special case code. Note that codegening works now for "int x(1);" without any changes to CodeGen. llvm-svn: 57178
-
Chris Lattner authored
won't expand to the builtin. This fixes rdar://6248329 llvm-svn: 57164
-
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
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
-
Zhongxing Xu authored
llvm-svn: 57146
-
Anders Carlsson authored
llvm-svn: 57145
-
Anders Carlsson authored
llvm-svn: 57144
-