| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 73702
|
| |
|
|
|
|
| |
This fixes a source range problem reported by Olaf Krzikalla.
llvm-svn: 73266
|
| |
|
|
|
|
|
|
| |
an error to being a warning that defaults to error. If you want this to
be a warning, you have to explicitly pass -Winvalid-noreturn to clang to
map it back to a warning.
llvm-svn: 72669
|
| |
|
|
| |
llvm-svn: 72641
|
| |
|
|
| |
llvm-svn: 72210
|
| |
|
|
| |
llvm-svn: 71990
|
| |
|
|
| |
llvm-svn: 71989
|
| |
|
|
| |
llvm-svn: 71982
|
| |
|
|
| |
llvm-svn: 71936
|
| |
|
|
| |
llvm-svn: 71917
|
| |
|
|
| |
llvm-svn: 71916
|
| |
|
|
| |
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
|