aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-11-29Removed potential buffer overrun (spotted by Neil Booth) when ↵Ted Kremenek
NumericLiteralParser 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44422 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Several fixes/simplifications surrounding how we stream top-level decl AST's.Steve Naroff
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' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44421 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Converted AST Pretty-Printer to use iostreams instead of FILE*. This fixesTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44417 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Inlined test case to make it independent of the stmt_exprs test case in ↵Ted Kremenek
test/Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44416 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Added the "Serialization" test directory to the set of tests executed.Ted Kremenek
Introduced a few line breaks to make the Makefile easier to read. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44413 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Added initial test case for testing serialization of ASTs. This testTed Kremenek
case simply performs --test-pickling on the code found in Sema/stmt_exprs.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44412 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Modified --test-pickling to perform an actual cross-check of serialized ASTs:Ted Kremenek
(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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44411 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Changed TestRunner.sh to dump the output and generated script files inTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44410 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Added missing "RUN:" to comment for test case file. This fixed a bug where ↵Ted Kremenek
the test case testing the frontend's support of statement expressions was not being executed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44409 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Fix a bug checking for 'int foo(void)' that didn't look through typedefs of ↵Chris Lattner
void. Bug pointed out by Michael Zolda, thanks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44408 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Fix typo in writable string testOliver Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Adding code gen tests for writable and shared string literals.Oliver Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44397 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Add correct types for the last remaining intrinsics.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44396 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Implement support for -fwritable-strings and make the code generatorChris Lattner
merge string literals when it is not provided. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44394 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Add more intrinsics. We can now correctly parse both Carbon.h and Cocoa.h ↵Anders Carlsson
without having to do -arch ppc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44392 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28fix compilation error noticed by Nuno LopesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44388 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Migrated static functions that print decls into a DeclPrinter class,Ted Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44377 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27add several cases that Expr::hasStaticStorage missed, pointed out by Oliver HuntChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44376 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Set loc earlier in CheckSingleInitializer to avoid emitting a Chris Lattner
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27sizeof is defined by bitsin(char) not by units of 8 bits.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44369 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27update to match change in mainline llvm.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Move the null pointer constant check from ↵Steve Naroff
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! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44366 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27handle __vector_size__ like vector_sizeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44358 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Add builtin type signature support for vector types. Add correct type ↵Anders Carlsson
signatures for a bunch of MMX builtins. We now parse all the intrinsics in mmintrin.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Add comment to CheckVectorCast.hAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44356 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27take an initial stab at setting function linkage right. HandleChris Lattner
static and inline at least. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44355 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Report errors for invalid casts from/to vectors.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44350 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Add more semantic analysis for inline asm statements.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Added optional pass-by-reference argument "isExact" toTed Kremenek
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44339 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Removed dependence on #including iostream.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44338 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Fixed #include of objc/objc.h so that it works on case-sensitive filesystems.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44337 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Reverted changed to getTagDeclType() introduced in patch 44089:Ted Kremenek
http://llvm.org/viewvc/llvm-project?view=rev&revision=44089 "Decl" once again can no longer be NULL, so the NULL checks are not needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Fixed a rewrite bug in class synthesis (which I first thought was a rewrite ↵Fariborz Jahanian
API bug). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44335 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Removes link to status page till the info gets added. Someone put us on ↵Kevin
Reddit; Don't want it to look bad on the project. :) http://programming.reddit.com/info/61f8g/comments/ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44334 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Patch to fix a regression caused by recent rewrite changes.Fariborz Jahanian
A potential API bug in ReplaceText pending (A FIXME is added). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44333 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Fixed StmtPrinter to handle GCC extension to the ternary operator "?:" whereTed Kremenek
the LHS subexpression can be NULL. Patch provided by Nuno Lopes! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Fixed bug in CFG construction where we did not properly handle the GCCTed Kremenek
extension "?:" for the ternary operator, e.g.: x ?: y; This expression is represented in the clang ASTs as a ConditionalOperator whose LHS expression is NULL. Now we handle this special case, causing the block containing the condition to be a predecessor to the block that "merges" the values of the ternary operator. Thanks to Nuno Lopes for identifying and diagnosing this bug! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26The checking for the delimiters of expected error/warning messages wasBill Wendling
looking only for { and } instead of {{ and }}. Changed it to check for this explicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44326 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26Fix sema support for the gnu ?: expression with a Chris Lattner
missing middle expression, and fix a codegen bug where we didn't correctly promote the condition to the right result type. This fixes PR1824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44322 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-26this works.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44321 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-25sizeof() return size in bytes, not bits, patch by Nuno Lopes!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-25Moved logic for -Wfloat-equal to SemaChecking.cpp.Ted Kremenek
Moved utility functions IgnoreParen and friends to be static inline functions defined in SemaUtil.h. Added SemaUtil.h to Xcode project. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44312 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-25Check that the clobber registers are valid.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44311 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-25Forgot some X86 registersAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-24Add tables for GCC register names and aliases. This will be used for inline asmAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44308 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-24Added more test cases for uninitialized values checker.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44307 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-24Fixed bogus culling of uninitialized-values "taint" propagation during ↵Ted Kremenek
assignments. We accidentally were throttling the propagation of uninitialized state across assignments (e.g. x = y). Thanks to Anders Carlsson for spotting this problem. Added test cases to test suite to provide regression testing for the uninitialized values analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44306 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-24Moved dead-stores test cast to a new test suite subdirectory: Analysis.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44305 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-23Keep track of whether the asm is volatile or not.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44297 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-23improve codegen for global variable initializers, implementing Chris Lattner
test/CodeGen/global-with-initialiser.c Patch by Oliver Hunt! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44290 91177308-0d34-0410-b5e6-96231b3b80d8