- Nov 30, 2007
-
-
Steve Naroff authored
Yesterday, I simplified how we stream top-level decls. After a discussion with Ted, we both came to the conclusion that adding a "HandleTopLevelDeclaration" hook to ASConsumer is far more elegant. The default implementation of HandleTopLevelDeclaration will be responsible for iterating over the ScopedDecl (which has a chain of the decls:-). TODO: Once Ted adds HandleTopLevelDeclaration, make sure TagDecls are chainged appropriately... llvm-svn: 44445
-
Ted Kremenek authored
be the new hook that ASTStreamer calls to feed top-level Decls to ASTConsumers. The difference between "HandleTopLevelDeclaration" and "HandleTopLevelDecl" is that "HandleTopLevelDecl" is currently called by ASTStreamer for every top-level declaration, including those that appear within a Decl chain. Using the new interface, ASTStreamer would only call HandleTopLevelDeclaration for Decls that appear that the beginning of a Decl chain (i.e., a group of related decls). To preserve the behavior that all subclasses of ASTConsumer currently expect, the default implementation of HandleTopLevelDeclaration simply calls HandleTopLevelDecl, and for decl chains it calls HandleTopLevelDecl for each Decl* in a chain of Decls. The advantage of this interface is that some subclasses of ASTConsumer only really want the Decl chain, and not each individual Decl passed to them. This extra level of indirection allows subclasses to override the default behavior if they so desire. llvm-svn: 44444
-
Evan Cheng authored
llvm-svn: 44443
-
- Nov 29, 2007
-
-
Christopher Lamb authored
Update the initializer's type, in addition to the decl, if we've changed the type of the decl based on it. llvm-svn: 44440
-
Ted Kremenek authored
test suite. llvm-svn: 44439
-
Ted Kremenek authored
llvm-svn: 44438
-
Owen Anderson authored
llvm-svn: 44437
-
Evan Cheng authored
in the middle of a split basic block, create a new live interval starting at the def. This avoid artifically extending the live interval over a number of cycles where it is dead. e.g. bb1: = vr1204 (use / kill) <= new interval starts and ends here. ... ... vr1204 = (new def) <= start a new interval here. = vr1204 (use) llvm-svn: 44436
-
Evan Cheng authored
llvm-svn: 44435
-
Evan Cheng authored
llvm-svn: 44434
-
Duncan Sands authored
llvm-svn: 44433
-
Chris Lattner authored
llvm-svn: 44432
-
Christopher Lamb authored
Support floating point literals of the form "1e-16f" which specify an exponent but no decimal point. llvm-svn: 44431
-
Chris Lattner authored
initialized with a value if they want, by specializing the StringMapEntryInitializer class. llvm-svn: 44430
-
Ted Kremenek authored
both before and after serialization/deserialization. If the CFGs between the pre- and post- serialized/deserialized ASTs differ, the serialization has failed. llvm-svn: 44429
-
Evan Cheng authored
llvm-svn: 44428
-
Evan Cheng authored
llvm-svn: 44427
-
Ted Kremenek authored
Removed redundant test case. llvm-svn: 44426
-
Ted Kremenek authored
represented exactly and inexactly by APFloats. For the former, we do not emit a warning. llvm-svn: 44425
-
Ted Kremenek authored
floating-point literals that are represented exactly by the APFloat in FloatingLiteral. For such literals, we do not emit a warning since such checks are often performed in real code to see if a variable has changed from its original value. This heuristic clearly can lead to false negatives, but the hope is it will significantly reduce false positives to help make the compiler flag more useful. llvm-svn: 44424
-
Ted Kremenek authored
the APFloat representing the parsed literal can represent the literal value exactly. This is useful when performing various semantic checks on the code, and issuing appropriate warnings to users. llvm-svn: 44423
-
Ted Kremenek authored
converts a parsed literal into an APFloat. We are still performing a copy of the string, which hopefully will be removed eventually for performance reasons. This version now is at least safe. Changed rounding in APFloat construction in NumericLiteralParser from rmTowardsZero to rmNearestTiesToEven. llvm-svn: 44422
-
- Nov 28, 2007
-
-
Steve Naroff authored
Several fixes/simplifications surrounding how we stream top-level decl AST's. The following code... typedef struct cssm_data {} CSSM_DATA, *CSSM_DATA_PTR; struct Y { int A; }; struct X { int A; } D; struct X E, F; ...now produces the following output... > ../../Debug/bin/clang xx.c -ast-print Read top-level tag decl: 'cssm_data' typedef struct cssm_data CSSM_DATA; typedef struct cssm_data *CSSM_DATA_PTR; Read top-level tag decl: 'Y' Read top-level tag decl: 'X' Read top-level variable decl: 'D' Read top-level variable decl: 'E' Read top-level variable decl: 'F' ...which is much more accurate than the previous -ast-print output... typedef struct cssm_data CSSM_DATA; typedef struct cssm_data CSSM_DATA; Read top-level variable decl: 'D' Read top-level variable decl: 'E' Read top-level variable decl: 'E' llvm-svn: 44421
-
Chris Lattner authored
llvm-svn: 44418
-
Ted Kremenek authored
a bug where the statement pretty-printer used iostreams but the AST printer did not. This was an issue when dumping ASTs to something other than stderr. Updated SerializationTest to use the new iostreams interface for the AST printer. llvm-svn: 44417
-
Ted Kremenek authored
llvm-svn: 44416
-
Chris Lattner authored
unsigned char *llvm_cbe_X; ... llvm_cbe_X = 0; *((void**)&llvm_cbe_X) = __builtin_stack_save(); instead of: llvm_cbe_X = __builtin_stack_save(); See PR1809 for details. llvm-svn: 44415
-
Chris Lattner authored
llvm-svn: 44414
-
Ted Kremenek authored
Introduced a few line breaks to make the Makefile easier to read. llvm-svn: 44413
-
Ted Kremenek authored
case simply performs --test-pickling on the code found in Sema/stmt_exprs.c. llvm-svn: 44412
-
Ted Kremenek authored
(1) Parsed ASTs are pretty-printed to a text file. (2) The ASTs are serialized to disk. (3) The ASTs are deserialized from disk. (4) The deserialized ASTs are pretty-printed to a text file. (5) The two pretty-printed files are compared. If they are different, the test fails. llvm-svn: 44411
-
Ted Kremenek authored
subdirectories mirroring where the test case file is located For example, for the test case "Sema/stmt_exprs.c", instead of the files "Output/stmt_exprs.c.out" and "Output/stmt_exprs.c.out.script" being created, the files "Output/Sema/stmt_exprs.c.out" and "Output/Sema/stmt_exprs.c.out.script" are created. This prevents any collisions from different test directories that have the same file name for a test case, and also makes it clear where the test case was drawn from. llvm-svn: 44410
-
Ted Kremenek authored
case testing the frontend's support of statement expressions was not being executed. llvm-svn: 44409
-
Chris Lattner authored
Bug pointed out by Michael Zolda, thanks! llvm-svn: 44408
-
Chris Lattner authored
CodeGen/Generic/fp_to_int.ll among others. Its unclear why this just started failing... llvm-svn: 44407
-
Chris Lattner authored
llvm-svn: 44406
-
Chris Lattner authored
llvm-svn: 44405
-
Chris Lattner authored
llvm-svn: 44404
-
Duncan Sands authored
use them. llvm-svn: 44403
-
Duncan Sands authored
local changes, not the "not". llvm-svn: 44402
-