Steve Naroff
d32419de0d
Record if a compound literal expression is @ file scope. This allows us to implement C99 6.5.2.5p6. This could have been done without modifying the AST (by checking the decl type and passing the info down to isContextExpr), however we concluded this is more desirable.
...
Bug/patch by Eli Friedman!
llvm-svn: 45966
2008-01-14 18:19:28 +00:00
Fariborz Jahanian
af5d80cba5
Avoid redefinition of __objcFastEnumerationState
...
llvm-svn: 45842
2008-01-10 23:04:06 +00:00
Fariborz Jahanian
7262fca0a6
Put return type of synthesize method on same line as method declaration, space after method declaration header.
...
llvm-svn: 45806
2008-01-10 01:39:52 +00:00
Fariborz Jahanian
82ae0152a7
Allow messaging expression as foreach's collection expression.
...
llvm-svn: 45793
2008-01-10 00:24:29 +00:00
Fariborz Jahanian
6fa7516bc9
Type-cast RHS of assignment to prevent warning compiling rewritten foreach code.
...
llvm-svn: 45777
2008-01-09 18:15:42 +00:00
Fariborz Jahanian
22f2347791
Fixed a bug whereby a parethesized collection expression was not being rewritten correctly.
...
llvm-svn: 45776
2008-01-09 17:50:00 +00:00
Fariborz Jahanian
b7e7ee9ff3
Typo fixed.
...
llvm-svn: 45771
2008-01-09 01:25:54 +00:00
Fariborz Jahanian
965a8961c7
Patch to rewrite ObjC2's foreach-stmt.
...
llvm-svn: 45760
2008-01-08 22:06:28 +00:00
Fariborz Jahanian
dc917b9e07
Patch to start rewriting of ObjC2's foreach statement (work in progress).
...
llvm-svn: 45721
2008-01-07 21:40:22 +00:00
Ted Kremenek
1b0ea82459
Substituted all instances of the string "Objc" for "ObjC". This fixes
...
some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715
2008-01-07 19:49:32 +00:00
Chris Lattner
266a2ff3ac
Compute the proper sourcerange for an CompoundLiteralExpr.
...
llvm-svn: 45504
2008-01-02 21:46:24 +00:00
Chris Lattner
5b12ab8c93
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change.
llvm-svn: 45410
2007-12-29 19:59:25 +00:00
Chris Lattner
b907c3fca1
remove use of alloca.
...
llvm-svn: 45329
2007-12-23 01:40:15 +00:00
Anton Korobeynikov
03f8a3630d
Unbreak mingw build
...
llvm-svn: 45328
2007-12-23 01:19:32 +00:00
Ted Kremenek
230bd918b2
Interned MainFileID within SourceManager. Since SourceManager is referenced by
...
both Preprocessor and ASTContext, we no longer need to explicitly pass
MainFileID around in function calls that also pass either Preprocessor or
ASTContext. This resulted in some nice cleanups in the ASTConsumers and the
driver.
llvm-svn: 45228
2007-12-19 22:51:13 +00:00
Steve Naroff
7e718bb3fd
Soften the macro rewrite error to a warning (and change the text).
...
llvm-svn: 45209
2007-12-19 19:16:49 +00:00
Steve Naroff
55cb4be8ae
Emit errors when attempting to rewrite ObjC expressions that originate from a macro expansion.
...
We plan on fixing this and removing this restriction after the break...
llvm-svn: 45200
2007-12-19 14:32:56 +00:00
Fariborz Jahanian
9f0e310861
Refactoring work. ObjcQualifiedIdType is now derived from 'Type'.
...
llvm-svn: 45174
2007-12-18 21:33:44 +00:00
Fariborz Jahanian
24cb52c9b0
Patch to implemented objective-c's dynamic object pointer qualified with
...
the protocol list (id<P,...> types).
llvm-svn: 45121
2007-12-17 21:03:50 +00:00
Fariborz Jahanian
77b713b5d3
Also fixed similar regression for class methods, as well as more indentations.
...
llvm-svn: 45107
2007-12-17 18:07:01 +00:00
Fariborz Jahanian
5f6409532b
Fixed a regression caused by refactoring of some meta-data generation routines using iteratgors.
...
Also fixed indentation problems.
llvm-svn: 45105
2007-12-17 17:56:10 +00:00
Steve Naroff
3ce37a6b8e
- Remove getInstanceMethods/getClassMethods API on ObjcInterfaceDecl, ObjcProtocolDecl, and ObjcCategoryDecl. These methods are replaced by the respective iterators on each class.
...
- Add getInstanceMethodForSelector to ObjcInterfaceDecl, ObjcProtocolDecl, and ObjcCatgoryDecl. This hook will do a "shallow" lookup. This is a convenience method that reducing some of the iterator usage.
- Various changes to convert all clients to the above API's...
llvm-svn: 45046
2007-12-14 23:37:57 +00:00
Ted Kremenek
1daa3cfbae
TargetInfo no longer includes a reference to SourceManager.
...
Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation.
Added many utility methods to FullSourceLoc to provide shorthand for:
FullLoc.getManager().someMethod(FullLoc.getLocation());
instead we have:
FullLoc.someMethod();
Modified TextDiagnostics (and related classes) to use this short-hand.
llvm-svn: 44957
2007-12-12 22:39:36 +00:00
Chris Lattner
30d23e8289
more cleanups changing things like getInstanceVariables to iterators.
...
llvm-svn: 44930
2007-12-12 07:56:42 +00:00
Chris Lattner
31bc07e6cf
resolve some fixmes and clean up some code by eliminating the get*Vars apis to some classes and use iterators instead.
...
llvm-svn: 44927
2007-12-12 07:46:12 +00:00
Fariborz Jahanian
16e703ade5
80-column please.
...
llvm-svn: 44888
2007-12-11 23:04:08 +00:00
Fariborz Jahanian
4e56ed5fab
Implemented rewriting of protocol-qualified global variable types.
...
Re-implemented some of rewriting of protocol-qualified function
argument types to support it in its generality.
llvm-svn: 44886
2007-12-11 22:50:14 +00:00
Ted Kremenek
d4e5fbacab
Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. Now
...
SourceManager is passed by reference, allowing the SourceManager to be
associated with a specific translation unit, and not the entire execution
of the driver.
Modified all users of Diagnostics to comply with this new interface.
Integrated SourceManager as a member variable of TargetInfo. TargetInfo will
eventually be associated with a single translation unit (just like
SourceManager).
Made the SourceManager reference in ASTContext private. Provided accessor
getSourceManager() for clients to use instead. Modified clients to comply with
new interface.
llvm-svn: 44878
2007-12-11 21:27:55 +00:00
Fariborz Jahanian
c86ee9ce90
Refactor Rewritetest::RewriteObjcQualifiedInterfaceTypes in preparation for more
...
general use.
llvm-svn: 44876
2007-12-11 19:56:36 +00:00
Steve Naroff
1f6ed92dbb
Omit the field name when including the super class structure template.
...
This allows us to access a superclasses ivars without deriving the absolute path.
The comments below say a bit more...
llvm-svn: 44688
2007-12-07 22:15:58 +00:00
Fariborz Jahanian
ff6a455c12
Implemented when static typing is combined with protocols and use as receiver
...
type.
llvm-svn: 44685
2007-12-07 21:21:21 +00:00
Fariborz Jahanian
33c0e815f3
Patch for rewriting of @protocol.
...
llvm-svn: 44681
2007-12-07 18:47:10 +00:00
Steve Naroff
b2f8ff153d
Rewrite 'super' within a class method. This required some minor tweaks to the front-end.
...
llvm-svn: 44673
2007-12-07 03:50:46 +00:00
Fariborz Jahanian
227c0d13bc
On Steve's suggestion, moved handling of use of undeclared method in a message
...
to rewriter (my previous patch).
llvm-svn: 44665
2007-12-06 19:49:56 +00:00
Steve Naroff
ff9f8efe4d
Make sure the class methods get attached to the metaclass object.
...
Need to query the implementation, not the interface...
llvm-svn: 44633
2007-12-05 21:49:40 +00:00
Fariborz Jahanian
d5db92ba97
Changed type-cast of "struct objc_super"'s 2nd initializer to match definition of
...
"struct objc_super".
llvm-svn: 44616
2007-12-05 17:29:46 +00:00
Steve Naroff
0317aeb4b6
Add the definition of objc_super...
...
llvm-svn: 44588
2007-12-04 23:59:30 +00:00
Fariborz Jahanian
1e34ce1045
Type-cast initializers for "struct objc_super" parameter to avoid warning.
...
llvm-svn: 44583
2007-12-04 22:32:58 +00:00
Fariborz Jahanian
31e1850694
Don't assert if objc.h not declared when rewriting.
...
llvm-svn: 44580
2007-12-04 21:47:40 +00:00
Fariborz Jahanian
f256b48bc7
Removed a "TODO" comment as objc1 runtime does not need to do the "TODO".
...
llvm-svn: 44577
2007-12-04 19:31:56 +00:00
Fariborz Jahanian
68c06b2d2c
Change <Objc/objc.h> to <objc/objc.h>
...
llvm-svn: 44556
2007-12-03 23:04:29 +00:00
Fariborz Jahanian
d0d2bd5089
Fixed a bug exposed by referencing an ivar field using component reference syntax.
...
llvm-svn: 44553
2007-12-03 22:25:42 +00:00
Fariborz Jahanian
4f76f22975
Support for rewriteing of messaging of methods which return float.
...
llvm-svn: 44548
2007-12-03 21:26:48 +00:00
Fariborz Jahanian
9e7b848ac8
Added support for messagings which return a structure-value.
...
(Also fixed a regression caused by recent changes to synthesis of structs).
llvm-svn: 44540
2007-12-03 19:17:29 +00:00
Chris Lattner
f3a59a1fb8
fix a crash when the rewriter would scan off the beginning of the file.
...
llvm-svn: 44499
2007-12-02 01:13:47 +00:00
Chris Lattner
e6535cfdd2
add support for custom client-specific diagnostics. As a testcase, make the
...
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
llvm-svn: 44498
2007-12-02 01:09:57 +00:00
Chris Lattner
4431a1b19b
start partitioning the diagnostics into two classes: those
...
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.
llvm-svn: 44473
2007-11-30 22:53:43 +00:00
Chris Lattner
e9c810c87c
pass diagnostics into the rewrite test client.
...
llvm-svn: 44468
2007-11-30 22:25:36 +00:00
Fariborz Jahanian
96502afb6f
Fixed a rewrite bug in class synthesis (which I first thought was a rewrite API bug).
...
llvm-svn: 44335
2007-11-26 20:59:57 +00:00
Fariborz Jahanian
a883d6ed89
Patch to fix a regression caused by recent rewrite changes.
...
A potential API bug in ReplaceText pending (A FIXME is added).
llvm-svn: 44333
2007-11-26 19:52:57 +00:00