#
b7e4367f |
| 16-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang/AST] Index references of protocols in "@protocol(...)" syntax.
To do that, keep track of the location of the protocol id in the ObjCProtocolExpr AST node.
rdar://11190837
llvm-svn: 156890
|
Revision tags: llvmorg-3.1.0 |
|
#
9b4fe356 |
| 10-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't crash when using objc boxed expression with parsing error.
rdar://11426994
llvm-svn: 156565
|
#
7a055366 |
| 09-May-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
objective-c. Fixes a 'fixit' where location of '*' on objective-c class name was misplaced. // rdar://11311333
llvm-svn: 156517
|
Revision tags: llvmorg-3.1.0-rc3 |
|
#
2ec85375 |
| 07-May-2012 |
John McCall <rjmccall@apple.com> |
Refactor DelayedDiagnostics so that it keeps diagnostics in separate pools owned by the RAII objects that keep pushing decl state. This gives us quite a bit more flexibility.
llvm-svn: 156289
|
Revision tags: llvmorg-3.1.0-rc2 |
|
#
0caa3947 |
| 19-Apr-2012 |
Patrick Beard <pcbeard@mac.com> |
Implements boxed expressions for Objective-C. <rdar://problem/10194391>
llvm-svn: 155082
|
Revision tags: llvmorg-3.1.0-rc1 |
|
#
6e92251f |
| 12-Apr-2012 |
Erik Verbruggen <erikjv@me.com> |
Added a flag to the parser to skip method bodies.
llvm-svn: 154584
|
#
acfbe9e1 |
| 06-Apr-2012 |
Patrick Beard <pcbeard@mac.com> |
Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. The warning this inhibits, -Wobjc-root-class, is opt-in for now. However, all clang uni
Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. The warning this inhibits, -Wobjc-root-class, is opt-in for now. However, all clang unit tests that would trigger the warning have been updated to use -Wno-objc-root-class. <rdar://problem/7446698>
llvm-svn: 154187
show more ...
|
#
bbafb8a7 |
| 11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris La
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
show more ...
|
#
bcc22fc4 |
| 09-Mar-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Support for raw and template forms of numeric user-defined literals, and lots of tidying up.
llvm-svn: 152392
|
#
0cf55e99 |
| 08-Mar-2012 |
Douglas Gregor <dgregor@apple.com> |
Streamline BalancedDelimiterTracker, by eliminating the duplicate paren/brace/bracket tracking (the Consume* functions already did it), removing the use of ConsumeAnyToken(), and moving the hot paths
Streamline BalancedDelimiterTracker, by eliminating the duplicate paren/brace/bracket tracking (the Consume* functions already did it), removing the use of ConsumeAnyToken(), and moving the hot paths inline with the error paths out-of-line.
llvm-svn: 152274
show more ...
|
#
e6a4affc |
| 07-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence unused variable warnings.
llvm-svn: 152170
|
#
e65b086e |
| 06-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objectiv
Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objective-C container subscripting.
My apologies for the large patch. It was very difficult to break apart. The patch introduces changes to the driver as well to cause clang to link in additional runtime support when needed to support the new language features.
Docs are forthcoming to document the implementation and behavior of these features.
llvm-svn: 152137
show more ...
|
#
d67aea28 |
| 06-Mar-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
User-defined literals: reject string and character UDLs in all places where the grammar requires a string-literal and not a user-defined-string-literal. The two constructs are still represented by th
User-defined literals: reject string and character UDLs in all places where the grammar requires a string-literal and not a user-defined-string-literal. The two constructs are still represented by the same TokenKind, in order to prevent a combinatorial explosion of different kinds of token. A flag on Token tracks whether a ud-suffix is present, in order to prevent clients from needing to look at the token's spelling.
llvm-svn: 152098
show more ...
|
#
c1e4dd0e |
| 01-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Change @import to @__experimental_modules_import. We are not ready to commit to a particular syntax for modules, and don't have time to push it forward in the near future.
llvm-svn: 151841
|
#
86c2f5cc |
| 29-Feb-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
objective-c: provide fixit hint when atomic property does not have matching user defined setter/getter and a warning is issued. In this case, a fixit note is displayed. // rdar://10267155
llvm-svn:
objective-c: provide fixit hint when atomic property does not have matching user defined setter/getter and a warning is issued. In this case, a fixit note is displayed. // rdar://10267155
llvm-svn: 151766
show more ...
|
#
2e85c5f2 |
| 23-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Make sure that all top-level decls in a @implementation are marked as such.
Previously we missed tag declarations; fixes rdar://10902015
llvm-svn: 151283
|
#
800ddf3d |
| 14-Feb-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Generalize -Wempty-body: warn when statement body is empty (closes: PR11329)
* if, switch, range-based for: warn if semicolon is on the same line. * for, while: warn if semicolon is on the same line
Generalize -Wempty-body: warn when statement body is empty (closes: PR11329)
* if, switch, range-based for: warn if semicolon is on the same line. * for, while: warn if semicolon is on the same line and either next statement is compound statement or next statement has more indentation.
Replacing the semicolon with {} or moving the semicolon to the next line will always silence the warning.
Tests from SemaCXX/if-empty-body.cpp merged into SemaCXX/warn-empty-body.cpp.
llvm-svn: 150515
show more ...
|
#
b6c6a583 |
| 07-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make parsing of objc @implementations more robust.
Parsing of @implementations was based on modifying global state from the parser; the logic for late parsing of methods was spread in multiple place
Make parsing of objc @implementations more robust.
Parsing of @implementations was based on modifying global state from the parser; the logic for late parsing of methods was spread in multiple places making it difficult to have a robust error recovery.
-it was difficult to ensure that we don't neglect parsing the lexed methods. -it was difficult to setup the original objc container context for parsing the lexed methods after completing ParseObjCAtImplementationDeclaration and returning to top level context.
Enhance parsing of @implementations by centralizing it in Parser::ParseObjCAtImplementationDeclaration(). ParseObjCAtImplementationDeclaration now returns only after an @implementation is fully parsed; all the data and logic for late parsing of methods is now in one place.
This allows us to provide code-completion for late parsed methods with mis-matched braces. rdar://10775381
llvm-svn: 149987
show more ...
|
#
8a40f700 |
| 17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it)
llvm-svn: 148292
|
#
0bf886d4 |
| 03-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Under -fmodules, accept #public <macroname> and #private <macroname> to make a macro public (the default for headers) or private, respectively.
llvm-svn: 147455
|
#
22d0974b |
| 03-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a non-uglified syntax for module imports in Objective-C:
@import identifier [. identifier]* ;
llvm-svn: 147452
|
#
f6102675 |
| 01-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Eliminate ObjCForwardProtocolDecl, which is redundant now that ObjCProtocolDecl modules forward declarations properly.
llvm-svn: 147415
|
#
68e081d6 |
| 20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146959
|
#
e1ee623a |
| 17-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
In Parser::SkipUntil do not stop at '@' unconditionally.
Stopping at '@' was originally intended to avoid skipping an '@' at the @interface context when doing parser recovery, but we should not stop
In Parser::SkipUntil do not stop at '@' unconditionally.
Stopping at '@' was originally intended to avoid skipping an '@' at the @interface context when doing parser recovery, but we should not stop at all '@' tokens because they may be part of expressions (e.g. in @"string", @selector(), etc.), so in most cases we will want to skip them.
This commit caused 'test/Parser/method-def-in-class.m' to fail for the cases where we tried to recover from unmatched angle bracket but IMO it is not a big deal to not have good recovery from such broken code and the way we did recovery would not always work anyway (e.g. if there was '@' in an expression).
The case that rdar://7029784 is about still passes.
llvm-svn: 146815
show more ...
|
#
9a174fb8 |
| 17-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
After late parsing an objc method, make sure there are no leftover cached tokens, because the memory associated with them is going to get released. We also don't want them to affect later parsing. (W
After late parsing an objc method, make sure there are no leftover cached tokens, because the memory associated with them is going to get released. We also don't want them to affect later parsing. (We do the same for C++ inline methods.)
The underlying cause for the leftover tokens is going to be addressed in the next commit.
Couldn't get a test case for the crash though. rdar://10583033.
llvm-svn: 146814
show more ...
|