| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
This involved refining how the parser/AST passes/manages SourceLocations for ObjcMethodDecl's.
llvm-svn: 43404
|
|
|
|
|
|
| |
Thanks to Steve N. to point out using of offsetof for this.
llvm-svn: 43391
|
|
|
|
| |
llvm-svn: 43382
|
|
|
|
|
|
|
| |
Changed the entire rewrite of metadata to write to std::string
object instead of stdout.
llvm-svn: 43360
|
|
|
|
|
|
| |
printf as an example.
llvm-svn: 43346
|
|
|
|
|
|
| |
instance/class methods metadata.
llvm-svn: 43320
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 43313
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
metadata emission.
Implemented emission of category metadata,
llvm-svn: 43308
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 43299
|
|
|
|
|
|
| |
This will make nested subexprs work.
llvm-svn: 43296
|
|
|
|
| |
llvm-svn: 43285
|
|
|
|
| |
llvm-svn: 43274
|
|
|
|
|
|
|
| |
Updated serialization test code in the driver to test serialization of
these types.
llvm-svn: 43266
|
|
|
|
|
|
|
| |
- Add setter/getter to ObjcClassDecl.
- Predefined key runtime functions.
llvm-svn: 43257
|
|
|
|
| |
llvm-svn: 43255
|
|
|
|
| |
llvm-svn: 43235
|
|
|
|
| |
llvm-svn: 43233
|
|
|
|
| |
llvm-svn: 43159
|
|
|
|
| |
llvm-svn: 43151
|
|
|
|
| |
llvm-svn: 43143
|
|
|
|
| |
llvm-svn: 43101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
the lexer, where it can be shared.
llvm-svn: 43090
|
|
|
|
| |
llvm-svn: 43085
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 43067
|
|
|
|
| |
llvm-svn: 43057
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
@selector probably gets this wrong also.
llvm-svn: 43048
|
|
|
|
|
|
|
|
| |
Rename SourceRange::Begin()/End() to getBegin()/getEnd() for
consistency with other code.
Start building the rewriter towards handling @encode.
llvm-svn: 43047
|
|
|
|
|
|
| |
#import to #include's as a test.
llvm-svn: 43041
|
|
|
|
| |
llvm-svn: 42974
|
|
|
|
| |
llvm-svn: 42967
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ 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
|
|
|
|
| |
llvm-svn: 42943
|
|
|
|
|
|
|
| |
some incredibly subtle details that I'm working on getting
right.
llvm-svn: 42940
|
|
|
|
| |
llvm-svn: 42883
|
|
|
|
|
|
|
| |
with x's for now. The APIs are all unimplemented, so it doesn't do
anything yet! :)
llvm-svn: 42868
|
|
|
|
| |
llvm-svn: 42855
|
|
|
|
| |
llvm-svn: 42853
|
|
|
|
|
|
|
| |
rename -parse-ast-dump to -ast-dump
remove -parse-ast, which is redundant with -fsyntax-only
llvm-svn: 42852
|
|
|
|
| |
llvm-svn: 42846
|
|
|
|
| |
llvm-svn: 42838
|
|
|
|
| |
llvm-svn: 42829
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 42800
|
|
|
|
|
|
|
| |
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
|