| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 71901
|
|
|
|
| |
llvm-svn: 71899
|
|
|
|
| |
llvm-svn: 71896
|
|
|
|
|
|
|
|
| |
- Skip semantic analysis of the "if" condition if it is type-dependent.
- Added the location of the "else" keyword into IfStmt, so that we can
provide it for type-checking after template instantiation.
llvm-svn: 71875
|
|
|
|
| |
llvm-svn: 71825
|
|
|
|
|
|
| |
from the asm string, but reject references to the smaller one.
llvm-svn: 70679
|
|
|
|
| |
llvm-svn: 70678
|
|
|
|
| |
llvm-svn: 70673
|
|
|
|
|
|
|
|
| |
number is not mentioned in the asm string, let it past sema.
Right now these are currently rejected by the llvm code generator
but this will be fixed next.
llvm-svn: 70670
|
|
|
|
|
|
|
| |
promotions. This should be fixed by not modeling asm operands (which
require the ()'s according to the grammar) as not being paren exprs.
llvm-svn: 70668
|
|
|
|
| |
llvm-svn: 70663
|
|
|
|
|
|
| |
no functionality change.
llvm-svn: 70662
|
|
|
|
| |
llvm-svn: 70567
|
|
|
|
| |
llvm-svn: 70566
|
|
|
|
|
|
|
|
| |
type and argument types are missing, and let return type deduction
happen before we give errors for returning from a noreturn block.
Radar 6441502
llvm-svn: 70413
|
|
|
|
| |
llvm-svn: 70403
|
|
|
|
| |
llvm-svn: 70353
|
|
|
|
|
|
| |
types and jumps into protected try-catch scopes.
llvm-svn: 70242
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
input/output constraint mismatch
Before we emitted:
$ clang t.c -S -m64
llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type!
Now we produce:
$ clang t.c -S -m64
t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int'
asm volatile("foo " : "=a" (a) :"0" (b));
~~~ ~^~
llvm-svn: 70142
|
|
|
|
|
|
| |
flags.
llvm-svn: 70137
|
|
|
|
| |
llvm-svn: 70136
|
|
|
|
|
|
| |
instead of passing it around in addition to it.
llvm-svn: 70135
|
|
|
|
|
|
| |
the enum along with some other data.
llvm-svn: 70114
|
|
|
|
| |
llvm-svn: 70105
|
|
|
|
|
|
| |
rdar://6810940 - @synchronized has no sema checks
llvm-svn: 69670
|
|
|
|
|
|
| |
rdar://6810106
llvm-svn: 69667
|
|
|
|
|
|
|
| |
calling into the jump checker when a function or method is known to contain
no VLAs or @try blocks.
llvm-svn: 69509
|
|
|
|
| |
llvm-svn: 69497
|
|
|
|
|
|
| |
This fixes a crash on invalid (test10). rdar://6805469
llvm-svn: 69465
|
|
|
|
|
|
|
| |
so that clients can't poke the function-local one when they really
want the current block label. No functionality change.
llvm-svn: 69463
|
|
|
|
| |
llvm-svn: 68925
|
|
|
|
| |
llvm-svn: 68909
|
|
|
|
|
|
|
|
|
| |
different code path that I forgot previously.
Implement the rvalue reference overload dance for returning local objects. Returning a local object first tries to find a move constructor now.
The error message when no move constructor is defined (or is not applicable) and the copy constructor is deleted is quite ugly, though.
llvm-svn: 68902
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
productions (except the already broken ObjC cases like @class X,Y;) in
the parser that can produce more than one Decl return a DeclGroup instead
of a Decl, etc.
This allows elimination of the Decl::NextDeclarator field, and exposes
various clients that should look at all decls in a group, but which were
only looking at one (such as the dumper, printer, etc). These have been
fixed.
Still TODO:
1) there are some FIXME's in the code about potentially using
DeclGroup for better location info.
2) ParseObjCAtDirectives should return a DeclGroup due to @class etc.
3) I'm not sure what is going on with StmtIterator.cpp, or if it can
be radically simplified now.
4) I put a truly horrible hack in ParseTemplate.cpp.
I plan to bring up #3/4 on the mailing list, but don't plan to tackle
#1/2 in the short term.
llvm-svn: 68002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pointer. Its purpose in life is to be a glorified void*, but which does not
implicitly convert to void* or other OpaquePtr's with a different UID.
Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>. Change the
entire parser/sema interface to use DeclPtrTy instead of DeclTy*. This
makes the C++ compiler enforce that these aren't convertible to other opaque
types.
We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc,
but I don't plan to do that in the short term.
The one outstanding known problem with this patch is that we lose the
bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to
bitmangle the success bit into the low bit of DeclPtrTy. I will rectify
this with a subsequent patch.
llvm-svn: 67952
|
|
|
|
| |
llvm-svn: 67923
|
|
|
|
| |
llvm-svn: 67746
|
|
|
|
|
|
| |
is of type void*. I'll try to add the appropriate checking later.
llvm-svn: 67721
|
|
|
|
|
|
|
|
|
|
|
| |
really horrible extensions that are disabled by default but that can
be accepted by -fheinous-gnu-extensions (but which always emit a
warning when enabled).
As our first instance of this, implement PR3788/PR3794, which allows
non-lvalues in inline asms in contexts where lvalues are required. bleh.
llvm-svn: 66910
|
|
|
|
|
|
|
|
| |
This solution is much simpler (and doesn't add any per-scope overhead, which concerned Chris).
The only downside is the LabelMap is now declared in two places (Sema and BlockSemaInfo). My original fix tried to unify the LabelMap in "Scope" (which would support nested functions in general). In any event, this fixes the bug given the current language definition. If/when we decide to support GCC style nested functions, this will need to be tweaked.
llvm-svn: 66896
|
|
|
|
|
|
|
|
| |
http://llvm.org/viewvc/llvm-project?view=rev&revision=65694 and http://llvm.org/viewvc/llvm-project?view=rev&revision=66741).
Will replace with something better today...
llvm-svn: 66893
|
|
|
|
|
|
|
|
| |
Sema/asm.c:64:9: error: invalid % escape in inline assembly string
asm("%!" : ); // expected-error {{invalid % escape in inline assembly string}}
~~^~
llvm-svn: 66606
|
|
|
|
| |
llvm-svn: 66598
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
@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
|
|
|
|
| |
llvm-svn: 65909
|
|
|
|
| |
llvm-svn: 65759
|