- 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
-
- 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
-
Christopher Lamb authored
Support floating point literals of the form "1e-16f" which specify an exponent but no decimal point. llvm-svn: 44431
-
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
-
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
-
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
-
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
-
Oliver Hunt authored
llvm-svn: 44398
-
Oliver Hunt authored
llvm-svn: 44397
-
Anders Carlsson authored
llvm-svn: 44396
-
Chris Lattner authored
merge string literals when it is not provided. llvm-svn: 44394
-
Anders Carlsson authored
Add more intrinsics. We can now correctly parse both Carbon.h and Cocoa.h without having to do -arch ppc. llvm-svn: 44392
-
Chris Lattner authored
llvm-svn: 44388
-
- Nov 27, 2007
-
-
Ted Kremenek authored
which is now used (or subclasssed) by the ASTConsumers. This new class stores a FILE* that is used for writing, instead of just hardwiring output to stderr (it defaults to stderr if no FILE* is provided). Modified CreateASTPrinter() to accept a FILE* for printing. llvm-svn: 44377
-
Chris Lattner authored
llvm-svn: 44376
-
Chris Lattner authored
diagnostic without a location. This produces: simpleTest.c:2:18: error: initializer element is not constant int *myPointer = &(myArray[2]); ^~~~~~~~~~~~~ instead of: error: initializer element is not constant llvm-svn: 44375
-
Chris Lattner authored
llvm-svn: 44369
-
Chris Lattner authored
llvm-svn: 44367
-
Steve Naroff authored
Move the null pointer constant check from Sema::CheckSingleInitializer/ActOnCallExpr/CheckMessageArgumentTypes/ActOnReturnStmt to Sema::CheckSingleAssignmentConstraints. This makes sure all null pointer assignments are considered compatible. Thanks to Seo Sanghyeon for the bug, follow-through, and patch! llvm-svn: 44366
-
Chris Lattner authored
llvm-svn: 44358
-
Anders Carlsson authored
Add builtin type signature support for vector types. Add correct type signatures for a bunch of MMX builtins. We now parse all the intrinsics in mmintrin.h llvm-svn: 44357
-
Anders Carlsson authored
llvm-svn: 44356
-
Chris Lattner authored
static and inline at least. llvm-svn: 44355
-
Anders Carlsson authored
llvm-svn: 44350
-
Anders Carlsson authored
llvm-svn: 44349
-
Ted Kremenek authored
NumericLiteralParser::GetFloatValue(). Upon method return, this flag has the value true if the returned APFloat can exactly represent the number in the parsed text, and false otherwise. Modified the implementation of GetFloatValue() to parse literals using APFloat's convertFromString method (which allows us to set the value of isExact). llvm-svn: 44339
-