aboutsummaryrefslogtreecommitdiff
path: root/Driver
AgeCommit message (Collapse)Author
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-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-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-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-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-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-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 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 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-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-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-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-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-17Make sure Sema::ParsedFreeStandingDeclSpec() returns a decl representing the ↵Steve Naroff
type. Adding basic printing to StmtPrinter::PrintRawDecl(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44208 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15No need to forward declare definition of objc_super...Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44173 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15Implement support for variadic methods (work in progress).Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44171 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15Extend RewriteTest::RewriteObjCIvarRefExpr() to cope with static typing ↵Steve Naroff
(when using -> on a type which corresponds to the implementation type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44170 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15Tweak funky cast to accommodate messaging 'super'. This removes any spurious ↵Steve Naroff
warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44169 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15Rewrite for messaging 'super'.Steve Naroff
The code gen. results in some spurious warnings...a cast is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44168 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15Break out bool/true/false support into a LangOptionNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44164 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15- Implement ivar rewrite (patch by Fariborz).Steve Naroff
- RewriteMessageExpr()...make implicit casts explicit with synthesizing call (removing warnings when calling objc_msgSend()). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44156 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15Refinement to previous commit. Always cast the first argument to "id"...no ↵Steve Naroff
need to special case self. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44149 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Cast implicit "self" argument to "id". This removes all warnings associated ↵Steve Naroff
with implicit references to self. It doesn't yet deal withexplicit references to self... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44148 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Always generate a typedef for @class. The typedef removal logic that I'm ↵Steve Naroff
removing only made sense when we were operating on preprocess files without typedef guards. Now that we have guards, it is incorrect to ever remove one (since it may increase the likelihood that the rewritten header can't be included stand alone). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44145 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Fix a rewriter bug that steve noticed. Don't skip arbitrary thingsChris Lattner
between an @ and a p, just skip whitespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44144 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Patch to comment out use of protocol qualifiers when rewriting ivars.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44142 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Fairly major surgery to RewriteTest::SynthesizeObjcInternalStruct().Steve Naroff
This allows us to handle funky stuff like... #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 @interface NSLayoutManager : NSObject <NSCoding, NSGlyphStorage> { #else /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 */ @interface NSLayoutManager : NSObject <NSCoding> { #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 */ ...which now rewrites to... #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 #ifndef _REWRITER_typedef_NSLayoutManager #define _REWRITER_typedef_NSLayoutManager typedef struct objc_object NSLayoutManager; #endif struct NSLayoutManager { struct NSObject _NSObject; #else /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 */ // @interface NSLayoutManager : NSObject <NSCoding> { #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 */ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44129 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14SourceManager, IdentifierTable, Selectors are now serialized in their ownTed Kremenek
block separate from ASTContext. This block is serialized out AFTER writing out ASTContext, but deserialized BEFORE reading in ASTContext. This permits the optimization of the serialization of the IdentifierTable where we only write out identifiers that are used. This was needed because TagDecls are owned by Types, and TagDecls contain identifiers. Thus types need to be written out first to register with the serializer any identifiers they refer to (and hence need to be serialized out with IdentifierTable). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44125 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Removed unused variabel.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44123 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Fix yesterday's regression with rewriting @optional/@required.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44119 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Rewrite methods that span multiple lines.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44118 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Comment out recent regression r44096.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44098 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Rewrite @optional/@required directives used inside protocol definitions.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44096 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14Rewrite of forward protocol declaration.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44095 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Fix regression with ObjC method definitions and -ast-printSteve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44088 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Rewrite method definition bodies. Also renamed a method to distinguish ↵Steve Naroff
between method declarations and definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44080 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Added pretty-printing of statements during serialization.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44078 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Fixed a rewrite of metadata bug when category implementation has no matching ↵Fariborz Jahanian
interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44072 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Populate metadata with adrress of method code.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44066 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Rewrite of method definitions in categories.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44062 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Order of methods are OK and generated .c file can be compiled.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44060 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13First patch in rewrie of method definitions. This is work in progress.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44055 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Added -Wfloat-equal option to the driver. This makes warnings aboutTed Kremenek
floating point comparisons using == or != an opt-in rather than a default warning. Updated test case to use -Wfloat-equal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44053 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-13Clean up types, removing some casts. Patch contributed byChris Lattner
Cedric Venet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44050 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-12- Minor cleanup to yesterday's changes to Sema::ObjcActOnStartOfMethodDef();Steve Naroff
- Add Sema::CurMethodDecl, in preparation for adding ObjcIvarRefExpr. - Add ObjcInterfaceDecl::lookupInstanceVariable(), in prep for adding ivars. - A couple renames in ObjcInterfaceDecl, while I was in the vicinity:-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44015 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-11This is the last 5% of the solution to teaching Sema::ActOnInstanceMessage() ↵Steve Naroff
about private methods (r43989). While the diff is large, the idea is very simple. When we parse method definitions (in an @implementation), we need to add them incrementally (rather than wait until the @end). Other details... - Renamed Sema::ActOnAddMethodsToObjcDecl() to Sema::ActOnAtEnd(). The methods are now optional arguments. - Removed Parser::AllImplMethods (a nice cleanup). - Added location info to ObjcImplementationDecl (since we will need it very soon:-) - Modified message.m test to no longer allow the bogus diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43995 91177308-0d34-0410-b5e6-96231b3b80d8