summaryrefslogtreecommitdiffstats
path: root/clang/Driver
Commit message (Collapse)AuthorAgeFilesLines
...
* Start rewriting ObjC interfaces. As a start, we comment out all the methods. ↵Steve Naroff2007-10-261-3/+30
| | | | | | This involved refining how the parser/AST passes/manages SourceLocations for ObjcMethodDecl's. llvm-svn: 43404
* Patch to synthesize computation of Ivar offset in rewritten c file.Fariborz Jahanian2007-10-261-6/+83
| | | | | | Thanks to Steve N. to point out using of offsetof for this. llvm-svn: 43391
* Pretty printing for ivar list of an interface block.Fariborz Jahanian2007-10-261-2/+15
| | | | llvm-svn: 43382
* Refactored several meta data for reusability.Fariborz Jahanian2007-10-251-245/+346
| | | | | | | Changed the entire rewrite of metadata to write to std::string object instead of stdout. llvm-svn: 43360
* Convert one type of metadata to use std::string instead ofChris Lattner2007-10-251-26/+46
| | | | | | printf as an example. llvm-svn: 43346
* Refactored RewriteObjcMethodsMetaData to better rewrite Fariborz Jahanian2007-10-251-9/+14
| | | | | | instance/class methods metadata. llvm-svn: 43320
* More work on translating message expressions. Steve Naroff2007-10-241-36/+93
| | | | | | | | | | | | | | | | | | Still to do: - Chris will fix a bug in the rewriting engine for nested stmts. For example, the following: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; tranlates to: NSAutoreleasePool * pool = objc_msgSend(objc_msgSend(objc_getClass("NSAutoreleasePool"), sel_getUid("alloc")), sel_getUid("init"))utoreleasePool"), sel_getUid("alloc")) init]; ...which is correct, except there is garbage after sel_getUid("init"). This is because the rewriter isn't updating the extent of the containing message expression. - Do the crazy cast thang. llvm-svn: 43316
* Remove explicit use of size of known structs in metadata generation.Fariborz Jahanian2007-10-241-5/+3
| | | | llvm-svn: 43313
* Couple of minor changes. 1) Metaclass metadata also has a reference toFariborz Jahanian2007-10-241-1/+9
| | | | | | | protocol meta-data (unlike what documentation says). 2) Include objc.h so, we can compile the generated metadata with both gcc and clang. llvm-svn: 43311
* Refactord instance and class metadata emission. Refactored protocols ↵Fariborz Jahanian2007-10-241-112/+208
| | | | | | | | metadata emission. Implemented emission of category metadata, llvm-svn: 43308
* Modified current clients of Bitcode-Object serialization to use theTed Kremenek2007-10-241-1/+2
| | | | | | | | | | new split-header file configuration (Serialize.h and Deserialize.h) now in place in the core LLVM repository. Removed unneeded SerializeTrait specializations for enums in TokenKinds.h llvm-svn: 43306
* Fix some long lines, move code around into logical groups.Chris Lattner2007-10-241-94/+123
| | | | llvm-svn: 43299
* Use Ted's new mutable child iterators to update the tree as we rewrite it.Chris Lattner2007-10-241-9/+17
| | | | | | This will make nested subexprs work. llvm-svn: 43296
* Incorporate some feedback from Chris...Steve Naroff2007-10-241-4/+4
| | | | llvm-svn: 43285
* Add some plumbing to rewrite message expressions (still under construction).Steve Naroff2007-10-231-4/+49
| | | | llvm-svn: 43274
* Implemented serialization for IdentifierInfo and IdentifierTable.Ted Kremenek2007-10-232-184/+107
| | | | | | | Updated serialization test code in the driver to test serialization of these types. llvm-svn: 43266
* - Add rewrite rule for @class.Steve Naroff2007-10-231-1/+35
| | | | | | | - Add setter/getter to ObjcClassDecl. - Predefined key runtime functions. llvm-svn: 43257
* Patch to complete metadata generation for each implemented class.Fariborz Jahanian2007-10-231-28/+55
| | | | llvm-svn: 43255
* Patch for initialization of class's Meta-class metadata.Fariborz Jahanian2007-10-231-1/+65
| | | | llvm-svn: 43235
* This patch generates protocol metadata and all its sub-metadata.Fariborz Jahanian2007-10-221-12/+165
| | | | llvm-svn: 43233
* rewrite of metadata for implemented instance methods.Fariborz Jahanian2007-10-191-0/+43
| | | | llvm-svn: 43159
* Patch to rewrite ivar tables metadata for classes defined.Fariborz Jahanian2007-10-181-1/+57
| | | | llvm-svn: 43151
* First patch toward rewriting of objective-c's meta data.Fariborz Jahanian2007-10-181-0/+72
| | | | llvm-svn: 43143
* Add new API to rewrite one stmt/expr with another.Chris Lattner2007-10-171-10/+11
| | | | llvm-svn: 43101
* Add rewriter support for @encode expressions. For example,Chris Lattner2007-10-171-4/+4
| | | | | | | | | | | | | | | we currently turn: c = @encode(char *)[2] + 4; into: c = "foo"[2] + 4; Right now the foo string is hard coded, but you can imagine a world where it wouldn't be :) llvm-svn: 43093
* Move token length calculation out of the diagnostics machinery into Chris Lattner2007-10-172-27/+1
| | | | | | the lexer, where it can be shared. llvm-svn: 43090
* wean the diagnostics machinery off the preprocessor.Chris Lattner2007-10-173-4/+7
| | | | llvm-svn: 43085
* Updated VC++ build system.Hartmut Kaiser2007-10-171-22/+25
| | | | | | | | Silenced some VC++ warnings. Had to rephrase a partial specialization of the IntrospectionTrait struct in SerializationTest.cpp, please review. Added a compiler specific workaround in IdentifierTable.h. Is that the way to fix this kind of issues? llvm-svn: 43074
* fix problems with test/sema/Cocoa.m etc on non-apple machines.Chris Lattner2007-10-171-0/+4
| | | | llvm-svn: 43067
* Fix the build.Anders Carlsson2007-10-171-0/+1
| | | | llvm-svn: 43057
* Started work on clang object serialization. ExperimentalTed Kremenek2007-10-163-0/+248
| | | | | | | | | | | | | | serialization logic as well as driver code is now in Driver/SerializationTest.cpp. The status of this code is that it should be used by no clients. Added --test-pickling option to driver to run the serialization code. Modified IdentifierInfo and IdentifierTable to have friend classes that permit object serialization. Such friendship may not be needed in the final design. llvm-svn: 43052
* Fix location processing of @encode: the range should include the @ sign.Chris Lattner2007-10-161-1/+1
| | | | | | @selector probably gets this wrong also. llvm-svn: 43048
* Add a new Rewriter::getRangeSize method.Chris Lattner2007-10-162-5/+34
| | | | | | | | Rename SourceRange::Begin()/End() to getBegin()/getEnd() for consistency with other code. Start building the rewriter towards handling @encode. llvm-svn: 43047
* Push the rewriter forward a bit more. Now it rewritesChris Lattner2007-10-161-9/+48
| | | | | | #import to #include's as a test. llvm-svn: 43041
* Add support for Pascal strings.Anders Carlsson2007-10-151-0/+6
| | | | llvm-svn: 42974
* Fix -ast-dump for ObjC.Steve Naroff2007-10-141-0/+6
| | | | llvm-svn: 42967
* haha, my devious plot is complete:Chris Lattner2007-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | $ clang rewrite.c -rewrite-test prints: int foo() { b: foo(); f: foo(); foo(); } for: int foo() { b: foo(); f: foo(); foo(); } amazing. llvm-svn: 42944
* Add __builtin_va_list definitions for x86_64 and ppc64.Anders Carlsson2007-10-131-0/+42
| | | | llvm-svn: 42943
* another step forward in rewriter stuff. This still hasChris Lattner2007-10-131-2/+3
| | | | | | | some incredibly subtle details that I'm working on getting right. llvm-svn: 42940
* This patch implementa objective-c's @compatibilty-alias declaration.Fariborz Jahanian2007-10-111-0/+9
| | | | llvm-svn: 42883
* Push the rewriting APIs along. Build a trivial client that replaces tabsChris Lattner2007-10-111-8/+58
| | | | | | | with x's for now. The APIs are all unimplemented, so it doesn't do anything yet! :) llvm-svn: 42868
* add scafolding to play around with and bring up the code rewriter.Chris Lattner2007-10-113-0/+51
| | | | llvm-svn: 42855
* rename -parse-ast-view to -ast-viewChris Lattner2007-10-111-1/+1
| | | | llvm-svn: 42853
* rename -parse-ast-print to -ast-printChris Lattner2007-10-111-16/+12
| | | | | | | rename -parse-ast-dump to -ast-dump remove -parse-ast, which is redundant with -fsyntax-only llvm-svn: 42852
* fix a bunch of regressions I introduced :(Chris Lattner2007-10-101-1/+1
| | | | llvm-svn: 42846
* clang -E should not print tokens from the predefines buffer.Chris Lattner2007-10-101-5/+16
| | | | llvm-svn: 42838
* Fix a latent bug in MinimalActions (created by a recent name change).Steve Naroff2007-10-101-5/+5
| | | | llvm-svn: 42829
* Make a significant change to invert the control flow handlingChris Lattner2007-10-093-138/+50
| | | | | | | | | | | | | | | | | | | | | | predefined macros. Previously, these were handled by the driver, now they are handled by the preprocessor. Some fallout of this: 1. Instead of preprocessing two buffers (the predefines, then the main source file) we now start preprocessing the main source file and inject the predefines as a "psuedo #include" from the main source file. 2. #1 allows us to nuke the Lexer::IsMainFile flag and simplify Preprocessor::isInPrimaryFile. 3. The driver doesn't have to know about standard #defines, the preprocessor knows, which is nice for people wanting to define their own drivers. 4. This allows us to put normal tokens in the predefine buffer, for example a definition for __builtin_va_list that is target-specific, and a typedef for id in objc. llvm-svn: 42818
* convert driver over to use Token::is/isNot APIs. fwew, all done.Chris Lattner2007-10-093-15/+14
| | | | llvm-svn: 42800
* Added a new class for Interfaces qualified by protocol list.Fariborz Jahanian2007-10-081-2/+20
| | | | | | | Protocols are now sorted and made unique in the list. Enhanced pretty printer for @interface (So, I can see the protocol list). llvm-svn: 42776
OpenPOWER on IntegriCloud