| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
type of the decl based on it.
llvm-svn: 44440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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'
llvm-svn: 44421
|
|
|
|
|
|
|
|
| |
void.
Bug pointed out by Michael Zolda, thanks!
llvm-svn: 44408
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
diagnostic without a location. This produces:
simpleTest.c:2:18: error: initializer element is not constant
int *myPointer = &(myArray[2]);
^~~~~~~~~~~~~
instead of:
error: initializer element is not constant
llvm-svn: 44375
|
|
|
|
|
|
|
|
| |
Sema::CheckSingleInitializer/ActOnCallExpr/CheckMessageArgumentTypes/ActOnReturnStmt to Sema::CheckSingleAssignmentConstraints. This makes sure all null pointer assignments are considered compatible.
Thanks to Seo Sanghyeon for the bug, follow-through, and patch!
llvm-svn: 44366
|
|
|
|
| |
llvm-svn: 44358
|
|
|
|
| |
llvm-svn: 44253
|
|
|
|
|
|
|
|
| |
works like -ast-print.
Also added a cast to be safe...
llvm-svn: 44209
|
|
|
|
|
|
|
|
| |
type.
Adding basic printing to StmtPrinter::PrintRawDecl().
llvm-svn: 44208
|
|
|
|
| |
llvm-svn: 44171
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
works fine.
@protocol CAMediaTiming
@property int beginTime;
@end
Comments in the code tell the rest of the story...
llvm-svn: 44117
|
|
|
|
|
|
|
|
|
|
|
| |
to declare a function with a typedef:
typedef int unary_int_func(int arg);
unary_int_func add_one;
This patch contributed by Seo Sanghyeon!
llvm-svn: 44100
|
|
|
|
|
|
| |
variables.
llvm-svn: 44073
|
|
|
|
| |
llvm-svn: 44069
|
|
|
|
| |
llvm-svn: 44038
|
|
|
|
|
|
| |
for class implementations).
llvm-svn: 44027
|
|
|
|
|
|
| |
InvalidType field to false.
llvm-svn: 44023
|
|
|
|
|
|
|
|
| |
- 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:-)
llvm-svn: 44015
|
|
|
|
|
|
|
|
|
| |
- It is not an "action" - it is never called by the parser.
- It was only used by one method, Sema::ObjcActOnStartOfMethodDef().
As a result, the logic it embodied is now directly implemented in Sema::ObjcActOnStartOfMethodDef().
llvm-svn: 44008
|
|
|
|
|
|
|
|
|
| |
Bug submitted by Keith Bauer.
CookieJar:Desktop keith$ cat test.m
#import <WebKit/WebKit.h>
llvm-svn: 44007
|
|
|
|
|
|
| |
Modify Sema::ParseParamDeclarator() to work for both ActOnStartOfFunctionDef() and ObjcActOnStartOfMethodDef().
llvm-svn: 44006
|
|
|
|
|
|
| |
ActOnMethodDefBody) with 1 method definition action (ActOnFinishFunctionBody). I can't think of any reason that we would need two action hooks.
llvm-svn: 44000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 43995
|
|
|
|
|
|
|
|
|
|
| |
declared in an implementation (but not listed in the interface).
This commit is only 95% of the bug fix. The last piece to this puzzle is to add the method decls to the implementation incrementally (as we encounter them). At the moment, the methods aren't added until we see an @end (which is too late).
I will complete this later...
llvm-svn: 43989
|
|
|
|
| |
llvm-svn: 43987
|
|
|
|
| |
llvm-svn: 43980
|
|
|
|
| |
llvm-svn: 43979
|
|
|
|
|
|
| |
process method definitions.
llvm-svn: 43967
|
|
|
|
|
|
| |
to 'self' method of instance methods.
llvm-svn: 43957
|
|
|
|
| |
llvm-svn: 43948
|
|
|
|
| |
llvm-svn: 43915
|
|
|
|
| |
llvm-svn: 43778
|
|
|
|
|
|
| |
functions. Patch contributed by Nuno Lopes, thanks!
llvm-svn: 43757
|
|
|
|
|
|
| |
contributed by Oliver Hunt, thanks!
llvm-svn: 43750
|
|
|
|
|
|
| |
method types.
llvm-svn: 43617
|
|
|
|
| |
llvm-svn: 43613
|
|
|
|
|
|
| |
2) Fixed a test failure (which should have failed all along!).
llvm-svn: 43589
|
|
|
|
|
|
|
|
| |
@interface).
A new test case added.
llvm-svn: 43568
|
|
|
|
|
|
|
|
|
|
|
|
| |
long standing FIXME in Sema::GetObjcIdType()).
This removes several gross hacks to work around the previous "lazy" behavior.
Two notes:
- MinimalActions still needs to be taught about the built-in types (This breaks one of the -noop test cases). I started this, then added a FIXME.
- I didn't convert Sema::GetObjcProtoType() yet.
llvm-svn: 43567
|
|
|
|
| |
llvm-svn: 43556
|
|
|
|
|
|
|
|
| |
objective-c's type qualifiers.
Added initialization of Class/SEMA types.
llvm-svn: 43534
|
|
|
|
| |
llvm-svn: 43515
|
|
|
|
| |
llvm-svn: 43507
|
|
|
|
| |
llvm-svn: 43504
|
|
|
|
|
|
| |
- Rewrite categories.
llvm-svn: 43501
|
|
|
|
|
|
| |
rewritten properly).
llvm-svn: 43494
|
|
|
|
| |
llvm-svn: 43493
|
|
|
|
|
|
| |
SourceLocation's for interfaces/protocols/categories/implementations.
llvm-svn: 43475
|
|
|
|
|
|
| |
This involved refining how the parser/AST passes/manages SourceLocations for ObjcMethodDecl's.
llvm-svn: 43404
|
|
|
|
|
|
|
|
| |
@implementation
decl without an @interface decl.
llvm-svn: 43403
|