aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-12-02globals can't be vla'sChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44512 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02add codegen support for global inits that require array decay.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44511 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02warn about unhandled initializers instead of crashing on them.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44510 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Handle global variable definitions which change the type of a definition, ↵Chris Lattner
such as: extern int x[]; void foo() { x[0] = 1; } int x[10]; void bar() { x[0] = 1; } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44509 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02remove the alloca insertion point inst, which is an internal helper.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44508 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02merge the llvm global variable when there are multiple C decls.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44507 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02implement codegen for functions whose function body type don't matchChris Lattner
their prototype. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44506 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02merge functions with multiple function decls if they have the same name.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44505 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Teach clang the prototype for __builtin_alloca.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44504 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02convert the rest of the stderr users in codegen to use diagnostics.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44503 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02move unsupported warning into a centralized place.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44502 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Warn about unsupported codegen with the diags machinery, giving us:Chris Lattner
t.c:3322:5: warning: cannot codegen this yet __asm__ ("bswap %0" : "+r" (_data)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ instead of: Unimplemented stmt! (AsmStmt 0x80eaa0 <t.c:3331:5, line:3334:28>) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44501 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02register clz and ctz builtins.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44500 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02fix a crash when the rewriter would scan off the beginning of the file.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44499 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02add support for custom client-specific diagnostics. As a testcase, make the Chris Lattner
rewriter emit this error if it fails to rewrite an @encode: t.m:17:9: error: rewriter could not replace sub-expression due to macros c = ENC(char *)[2] + 4; ^~~~~~~~~~~ ... where ENC is: #define ENC @encode git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Add support for __builtin_expect which is needed for assert, Oliver Hunt
among other things. Also change a codegen warning to dump to stderr so it doesn't mess with -emit-llvm output git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44497 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02improve VC++ compatibility, patch by Cédric Venet.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44496 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Support initalisers for more than just int-typed static variables.Oliver Hunt
We now use the CodeGenModule logic for generating the constant initialiser expression, so happily further initialiser fixes should automatically work for statics as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44495 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01Compute side-effect for conditional expression.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44492 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01Add #include, patch by Cédric VenetChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44491 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01Better match llvm-gcc's behavior for CodeGen naming of anonymous structs and ↵Christopher Lamb
unions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44490 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01When generating the CodeGen type name of a struct, union, enum use the typedef Christopher Lamb
name if a tag type name is not available for the type. This matches how llvm-gcc chooses CodeGen type names. This means that "typedef struct {...} foo" now results in a CodeGen name of "struct.foo" rather than "struct." git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44489 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01Test commitSeo Sanghyeon
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44488 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01make the unused expression warning less noisy by not warning about comma ↵Chris Lattner
exprs whose LHS and RHS both have side effects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44486 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01simplify some code, add support for functions without a protoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44485 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01fix a couple switch codegen problems Oliver reported.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44484 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01Fixed bug in the serialization of SelectorTable where we did not register theTed Kremenek
pointer of MultiKeywordSelectors. Added optimization to the serialization of SelectorTable where we only serialize out MultiKeywordSelectors that are ever referenced by an object other than the SelectorTable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44483 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30start partitioning the diagnostics into two classes: thoseChris Lattner
that are builtin and those that are aren't. This is a bunch of API refactoring that will make this possible, but there is no functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44473 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30String literals are always valid LValues.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Implemented serialization of SelectorTable and Selectors.Ted Kremenek
Modified serialization of IdentifierTable to self-register itself with the Deserializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44471 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30pass diagnostics into the rewrite test client.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44468 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Initialize CurMethodDecl to 0.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44463 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30GCC has an extension where the left hand side of the ? : operator can be ↵Anders Carlsson
omitted. Handle this in a few more places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44462 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Initialize LaxVectorConversions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44459 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30fix a bug handling typedefs in member expr codegen. Patch Chris Lattner
by Seo Sanghyeon git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44455 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Fix a codegen crash on void ?: reported by OliverChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44454 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Support fully general case expressions, patch by Sanghyeon Seo!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44453 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Doh! Check in this long overdue test fix.Christopher Lamb
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44450 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Support lax vector conversions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44449 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Yesterday, I simplified how we stream top-level decls.Steve Naroff
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... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44445 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Added method "HandleTopLevelDeclaration" to ASTConsumer. This will eventuallyTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44444 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Update the initializer's type, in addition to the decl, if we've changed the ↵Christopher Lamb
type of the decl based on it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44440 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Added "complex.c" (a copy of test/Codegen/complex.) to the serialization Ted Kremenek
test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44439 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Only serialize top-level decls that appear at the head of a decl chain.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44438 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Support floating point literals of the form "1e-16f" which specify an ↵Christopher Lamb
exponent but no decimal point. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44431 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Enhanced serialization testing by also pretty-printing CFGs constructed from ↵Ted Kremenek
ASTs both before and after serialization/deserialization. If the CFGs between the pre- and post- serialized/deserialized ASTs differ, the serialization has failed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44429 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Fixed test case to not expect a warning when one should not be emitted.Ted Kremenek
Removed redundant test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44426 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Added test cases for -Wfloat-equal to test comparisons against literals that ↵Ted Kremenek
can be represented exactly and inexactly by APFloats. For the former, we do not emit a warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44425 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Enhanced implementation of -Wfloat-equal to check for comparisons againstTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44424 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29Added "isExact" field to FloatingLiteral. This flag indicates whether or notTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44423 91177308-0d34-0410-b5e6-96231b3b80d8