| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
such as replacing 'T' in vector<T>. There are a few aspects to this:
- Extend TemplateArgument to allow arbitrary expressions (an
Expr*), and switch ClassTemplateSpecializationType to store
TemplateArguments rather than it's own type-or-expression
representation.
- ClassTemplateSpecializationType can now store dependent types. In
that case, the canonical type is another
ClassTemplateSpecializationType (with default template arguments
expanded) rather than a declaration (we don't build Decls for
dependent types).
- Split ActOnClassTemplateId into ActOnClassTemplateId (called from
the parser) and CheckClassTemplateId (called from
ActOnClassTemplateId and InstantiateType). They're smart enough to
handle dependent types, now.
llvm-svn: 66509
|
| |
|
|
|
|
|
|
|
| |
a warning and then threw away the AST. While I'm in there, tighten up the
code to actually reject completely bogus cases (sending a message to a
struct). We still allow sending a message to an int, which doesn't make
sense but GCC allows it and is easy to support.
llvm-svn: 66468
|
| |
|
|
|
|
|
|
| |
aren't very pretty:-(
This fixes <rdar://problem/6496506> Implement class setter/getter for properties.
llvm-svn: 66465
|
| |
|
|
| |
llvm-svn: 66431
|
| |
|
|
| |
llvm-svn: 66423
|
| |
|
|
| |
llvm-svn: 66422
|
| |
|
|
|
|
| |
documentation to reflect the fact that we can instantiate templates here
llvm-svn: 66421
|
| |
|
|
| |
llvm-svn: 66416
|
| |
|
|
| |
llvm-svn: 66387
|
| |
|
|
| |
llvm-svn: 66385
|
| |
|
|
|
|
| |
Patch by Jean-Daniel Dupas. Thanks!
llvm-svn: 66383
|
| |
|
|
|
|
|
|
|
| |
assignment (+=)"
warning to only trigger when there is whitespace or something else after the + as
suggested by Eli.
llvm-svn: 66370
|
| |
|
|
| |
llvm-svn: 66335
|
| |
|
|
|
|
|
| |
difficult to come up with a testcase because the code generation for this
construct is broken.
llvm-svn: 66325
|
| |
|
|
| |
llvm-svn: 66317
|
| |
|
|
| |
llvm-svn: 66314
|
| |
|
|
|
|
|
|
|
|
|
| |
- Make Selector::getAsIdentifierInfo() private. Using IdentifierInfo* in
Selector is an implementation detail that clients shouldn't think about.
- Modify diagnostic emission in Sema::ProcessPropertyDecl to not use
Selector::getAsIdentifierInfo() (which could crash when IdentifierInfo* is
null) and instead use Selector::getAsString().
- Tidy up Selector::getAsString() implementation.
llvm-svn: 66313
|
| |
|
|
|
|
|
| |
struct to an extension warning to match the behavior of GNU C, which
addresses the Sema part of PR3671.
llvm-svn: 66308
|
| |
|
|
|
|
| |
anonymous struct/union declaration outside of a struct or union in C
llvm-svn: 66303
|
| |
|
|
|
|
|
|
| |
prototype of the same function, where the promoted parameter types in
the K&R definition are not compatible with the types in the
prototype. Fixes PR2821.
llvm-svn: 66301
|
| |
|
|
|
|
|
| |
really use pack() instead.
- <rdar://problem/6650243> clang warns about '#pragma pack(0)'
llvm-svn: 66287
|
| |
|
|
| |
llvm-svn: 66286
|
| |
|
|
|
|
| |
C and C++. Fixes PR3688.
llvm-svn: 66282
|
| |
|
|
|
|
| |
- Also, diagnose weak applied to types.
llvm-svn: 66259
|
| |
|
|
|
|
|
|
| |
SemaObjC/call-super-2.m:78:29: error: cannot cast 'super' (it isn't an expression)
return [(Object <Func> *)super instance_func0];
~~~~~~~~~~~~~~~~~^
llvm-svn: 66215
|
| |
|
|
| |
llvm-svn: 66214
|
| |
|
|
| |
llvm-svn: 66213
|
| |
|
|
|
|
| |
more consistently.
llvm-svn: 66210
|
| |
|
|
|
|
|
|
| |
supported.
Tweak Sema::ActOnMemberReferenceExpr() and Sema::ActOnDeclarationNameExpr() to handle "super." notation for Class methods.
llvm-svn: 66185
|
| |
|
|
|
|
| |
arch=x86_64): synthesized property 'sdkPath' must either be named the same as a compatible ivar or must explicitly name an ivar.
llvm-svn: 66162
|
| |
|
|
|
|
| |
protocol declarations.
llvm-svn: 66161
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
like:
Stack dump:
0. t.c:5:10: in compound statement ('{}')
1. t.c:3:12: in compound statement ('{}')
2. t.c:3:12: parsing function body 'foo'
3. clang t.c
Abort
llvm-svn: 66118
|
| |
|
|
| |
llvm-svn: 66099
|
| |
|
|
|
|
| |
c-style functions declared inside objc @implementations.
llvm-svn: 66087
|
| |
|
|
|
|
|
|
|
|
| |
error: instance variable 'someField' is private.
A recent regression caused by http://llvm.org/viewvc/llvm-project?rev=65912&view=rev.
This commit isn't fully baked. Nevertheless, it should cause Xcode to compile again. Will speak with Fariborz offline.
llvm-svn: 66045
|
| |
|
|
| |
llvm-svn: 66041
|
| |
|
|
|
|
|
| |
If all else failed, find the message in class's root's
list of instacne methods!
llvm-svn: 66040
|
| |
|
|
|
|
|
|
|
| |
sometimes different than gcc's.
- Disallow casting 'super'. GCC allows this, however it doesn't make sense (super isn't an expression and the cast won't alter lookup/dispatch).
- Tighten up lookup when messaging 'self'.
llvm-svn: 66033
|
| |
|
|
| |
llvm-svn: 66027
|
| |
|
|
|
|
|
| |
decls. This reduces the number of calls to malloc on cocoa.h with pth and
-disable-free from 15958 to 12444 times (down ~3500).
llvm-svn: 66023
|
| |
|
|
|
|
| |
this, make DeclBase::Destroy destroy attributes instead of the DeclBase dtor.
llvm-svn: 66020
|
| |
|
|
| |
llvm-svn: 66016
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiple sequential case statements instead of doing it with recursion. This
fixes a problem where we run out of stack space parsing 100K directly nested
cases.
There are a couple other problems that prevent this from being useful in
practice (right now the example only parses correctly with -disable-free and
doesn't work with -emit-llvm), but this is a start.
I'm not including a testcase because it is large and uninteresting for
regtesting.
Sebastian, I would appreciate it if you could scrutinize the smart pointer
gymnastics I do.
llvm-svn: 66011
|
| |
|
|
| |
llvm-svn: 65978
|
| |
|
|
|
|
|
| |
is searched for in the global pool. It already uncovered
a clang bug in message selection.
llvm-svn: 65974
|
| |
|
|
|
|
| |
synthesized property 'sdkPath' must either be named the same as a compatible ivar or must explicitly name an ivar.
llvm-svn: 65973
|
| |
|
|
|
|
| |
@catch statements.
llvm-svn: 65969
|
| |
|
|
|
|
| |
in @catch statements.
llvm-svn: 65968
|
| |
|
|
|
|
|
|
|
|
|
| |
(Daniel, please verify).
Also necessary to fix:
<rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements
<rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements
llvm-svn: 65964
|
| |
|
|
|
|
|
|
| |
don't work.
Change Sema::DiagnosePropertyMismatch() to check for type compatibility (rather than type equivalence, which is too strict).
llvm-svn: 65949
|