| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
This works around a crash where malloc reused the memory of an erased BB for a
new BB leaving old cleanup information pointing at the new block.
llvm-svn: 104472
|
| |
|
|
|
|
|
|
| |
VLA restrictions so that one can use VLAs in templates (even
accidentally), but not as part of a non-type template parameter (which
would be very bad).
llvm-svn: 104471
|
| |
|
|
| |
llvm-svn: 104470
|
| |
|
|
|
|
| |
storage, rather than an UnresolvedSet.
llvm-svn: 104469
|
| |
|
|
|
|
|
| |
UnresolvedMemberExpr in their constructors, rather than adding them
after the fact. No functionality change.
llvm-svn: 104468
|
| |
|
|
|
|
| |
AsmParser and CodeGen line up better.
llvm-svn: 104467
|
| |
|
|
|
|
| |
the input much more closely, and also makes the API calls from the AsmParser and CodeGen line up better.
llvm-svn: 104466
|
| |
|
|
|
|
|
|
| |
pointers in the ASTContext, so that the folding sets stored inside
them will be deallocated when the ASTContext is destroyed (under
-disable-free). <rdar://problem/7998824>.
llvm-svn: 104465
|
| |
|
|
|
|
| |
base.
llvm-svn: 104464
|
| |
|
|
| |
llvm-svn: 104463
|
| |
|
|
|
|
| |
so that it can be selectively enabled/disabled.
llvm-svn: 104462
|
| |
|
|
|
|
| |
canonical type where the element type is canonical. Fixes PR7206.
llvm-svn: 104461
|
| |
|
|
| |
llvm-svn: 104455
|
| |
|
|
|
|
|
| |
expressions. Essentially, GC breaks a certain form of the return-value
optimization.
llvm-svn: 104454
|
| |
|
|
|
|
|
|
|
|
|
| |
immediates based on the width of the target instruction. For example:
addw $0xFFFF, %ax
should match the same as
addw $-1, %ax
but we used to match it to the longer encoding.
llvm-svn: 104453
|
| |
|
|
|
|
| |
instead of just one.
llvm-svn: 104452
|
| |
|
|
|
|
| |
first fix broke self-host.
llvm-svn: 104447
|
| |
|
|
| |
llvm-svn: 104446
|
| |
|
|
| |
llvm-svn: 104445
|
| |
|
|
|
|
|
| |
enum contexts (along with block contexts, which we already did). Fixes
PR7196.
llvm-svn: 104444
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
in several important ways:
- VLAs of non-POD types are not permitted.
- VLAs cannot be used in conjunction with C++ templates.
These restrictions are intended to keep VLAs out of the parts of the
C++ type system where they cause the most trouble. Fixes PR5678 and
<rdar://problem/8013618>.
llvm-svn: 104443
|
| |
|
|
| |
llvm-svn: 104436
|
| |
|
|
| |
llvm-svn: 104435
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
temporaries. There are actually several interrelated fixes here:
- When converting an object to a base class, it's only an lvalue
cast when the original object was an lvalue and we aren't casting
pointer-to-derived to pointer-to-base. Previously, we were
misclassifying derived-to-base casts of class rvalues as lvalues,
causing various oddities (including problems with reference binding
not extending the lifetimes of some temporaries).
- Teach the code for emitting a reference binding how to look
through no-op casts and parentheses directly, since
Expr::IgnoreParenNoOpCasts is just plain wrong for this. Also, make
sure that we properly look through multiple levels of indirection
from the temporary object, but destroy the actual temporary object;
this fixes the reference-binding issue mentioned above.
- Teach Objective-C message sends to bind the result as a temporary
when needed. This is actually John's change, but it triggered the
reference-binding problem above, so it's included here. Now John
can actually test his return-slot improvements.
llvm-svn: 104434
|
| |
|
|
| |
llvm-svn: 104433
|
| |
|
|
| |
llvm-svn: 104432
|
| |
|
|
|
|
|
|
| |
'-fasm' and explicitly map from that flag to -fgnu-keywords in the driver. Turn
off the driver in the lexer test for this madness and add a test to the driver
that the translation actually works.
llvm-svn: 104428
|
| |
|
|
|
|
|
| |
critical for ObjC++ correctness; hard to test independently of various
required Sema changes, though.
llvm-svn: 104422
|
| |
|
|
| |
llvm-svn: 104421
|
| |
|
|
|
|
|
| |
Followups: docs patch for the builtin and eh.sjlj.setjmp cleanup to match
longjmp.
llvm-svn: 104419
|
| |
|
|
| |
llvm-svn: 104418
|
| |
|
|
|
|
|
|
|
|
|
| |
short name of the tool in use, instead of the name of the action that created
the command. The practical impact is we now get:
clang: error: clang frontend command failed due to signal 6 (use -v to see invocation)
instead of:
clang: error: assembler command failed due to signal 6 (use -v to see invocation)
when clang crashes on a job that uses the integrated assembler.
llvm-svn: 104417
|
| |
|
|
| |
llvm-svn: 104416
|
| |
|
|
|
|
|
|
| |
copying VFP subregs. This exposed a bunch of dead code in the *spill-q.ll
tests, so I tweaked those tests to keep that code from being optimized away.
Radar 7872877.
llvm-svn: 104415
|
| |
|
|
| |
llvm-svn: 104414
|
| |
|
|
| |
llvm-svn: 104413
|
| |
|
|
| |
llvm-svn: 104412
|
| |
|
|
| |
llvm-svn: 104411
|
| |
|
|
| |
llvm-svn: 104410
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the required "template" keyword, using the same heuristics we do for
dependent template names in member access expressions, e.g.,
test/SemaTemplate/dependent-template-recover.cpp:11:8: error: use 'template'
keyword to treat 'getAs' as a dependent template name
T::getAs<U>();
^
template
Fixes PR5404.
llvm-svn: 104409
|
| |
|
|
|
|
| |
Evan please verify!
llvm-svn: 104408
|
| |
|
|
|
|
| |
for variable arguments list methods. (radar 8006060).
llvm-svn: 104407
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that is missing the 'template' keyword, e.g.,
t->getAs<T>()
where getAs is a member of an unknown specialization. C++ requires
that we treat "getAs" as a value, but that would fail to parse since T
is the name of a type. We would then fail at the '>', since a type
cannot be followed by a '>'.
This is a very common error for C++ programmers to make, especially
since GCC occasionally allows it when it shouldn't (as does Visual
C++). So, when we are in this case, we use tentative parsing to see if
the tokens starting at "<" can only be parsed as a template argument
list. If so, we produce a diagnostic with a fix-it that states that
the 'template' keyword is needed:
test/SemaTemplate/dependent-template-recover.cpp:5:8: error: 'template' keyword
is required to treat 'getAs' as a dependent template name
t->getAs<T>();
^
template
This is just a start of this patch; I'd like to apply the same
approach to everywhere that a template-id with dependent template name
can be parsed.
llvm-svn: 104406
|
| |
|
|
| |
llvm-svn: 104404
|
| |
|
|
|
|
|
| |
whitespace at the end of lines since I'm already touching the whole file
anyways.
llvm-svn: 104403
|
| |
|
|
| |
llvm-svn: 104396
|
| |
|
|
| |
llvm-svn: 104394
|
| |
|
|
| |
llvm-svn: 104392
|
| |
|
|
| |
llvm-svn: 104391
|
| |
|
|
| |
llvm-svn: 104390
|