| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 184918
|
|
|
|
| |
llvm-svn: 184915
|
|
|
|
| |
llvm-svn: 184913
|
|
|
|
| |
llvm-svn: 184912
|
|
|
|
| |
llvm-svn: 184911
|
|
|
|
| |
llvm-svn: 184909
|
|
|
|
| |
llvm-svn: 184908
|
|
|
|
| |
llvm-svn: 184907
|
|
|
|
| |
llvm-svn: 184906
|
|
|
|
| |
llvm-svn: 184905
|
|
|
|
|
|
|
| |
declaration. This PCH a little lazier, and breaks a deserialization cycle that
causes crashes with modules enabled.
llvm-svn: 184904
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted by Richard in the post:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130624/082605.html, the following code should not add an entry
into PendingLocalImplicitInstantiations, since local instantiations
should only occur within the context of other instantiations:
int foo(double y) {
struct Lambda {
template<class T> T operator()(T t) const { return t; };
} lambda;
return lambda(y);
}
Hence the attached code does the following:
1) In MarkFunctionReferenced, check if ActiveInstantiations.size()
is non-zero before adding to PendingLocalImplicitInstantiations.
2) In InstantiateFunctionDefinition, we swap out/in
PendingLocalImplicitInstantiations so that only those
pending local instantiations that are added during the instantiation
of the current function are instantiated recursively.
llvm-svn: 184903
|
|
|
|
| |
llvm-svn: 184902
|
|
|
|
| |
llvm-svn: 184896
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before: f(a, b, /*doFoo=*/ false);
Now: f(a, b, /*doFoo=*/false);
This style is a lot more common:
$ ack -H '=\*\/\w' lib | wc -l
1281
$ ack -H '=\*\/ \w' lib | wc -l
70
llvm-svn: 184894
|
|
|
|
|
|
| |
answer until after instantiation. Fixes PR16061!
llvm-svn: 184890
|
|
|
|
|
|
|
| |
Friend declarations that specify a default argument must be a definition
and the only declaration in the translation unit.
llvm-svn: 184889
|
|
|
|
| |
llvm-svn: 184887
|
|
|
|
| |
llvm-svn: 184885
|
|
|
|
|
|
| |
template parameter.
llvm-svn: 184884
|
|
|
|
|
|
|
|
|
|
|
| |
When the decl that we're getting alignment for is a FieldDecl, and the field's
parent record is invalid, skip the actual field alignment calculation (and
return 1-byte alignment in the general case).
Also, assert in in getASTRecordLayout that the decl is valid. This was
inspired by PR16292; see also r184581 and r184751.
llvm-svn: 184883
|
|
|
|
|
|
|
|
|
|
| |
A default template-argument shall not be specified in a friend template
declaration.
Interestingly, we properly handled default template arguments on friend
class members but not on just friend classes.
llvm-svn: 184882
|
|
|
|
|
|
| |
WenHan Gu!
llvm-svn: 184875
|
|
|
|
| |
llvm-svn: 184873
|
|
|
|
|
|
| |
when checking for overloads in C++1y.
llvm-svn: 184865
|
|
|
|
|
|
|
| |
is declared to have 'assign' attribute.
// rdar://14212998
llvm-svn: 184863
|
|
|
|
| |
llvm-svn: 184862
|
|
|
|
|
|
| |
the frontend. We don't want to respect the -disable-free flag here.
llvm-svn: 184861
|
|
|
|
| |
llvm-svn: 184857
|
|
|
|
| |
llvm-svn: 184856
|
|
|
|
| |
llvm-svn: 184855
|
|
|
|
| |
llvm-svn: 184851
|
|
|
|
|
|
|
|
| |
this code. These aren't technically standard predefines for the platform
but apparantly lots of folks use them as they show up within LLVM's own
codebase. ;] This may even fix some self host issues w/ the JIT!!!
llvm-svn: 184830
|
|
|
|
|
|
|
|
| |
Original message:
Use the new PathV2 instead of implementing the logic in clang.
llvm-svn: 184825
|
|
|
|
|
|
| |
This reverts commit 184803 while I debug the failures on the bots.
llvm-svn: 184818
|
|
|
|
|
|
|
| |
This test doesn't actually pass when run with llvm-lit for me or in
a bot that actually always tries to run it.
llvm-svn: 184817
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply r184511, reverted in r184561, with the trivial default constructor
fast path removed -- it turned out not to be necessary here.
Certain expressions can cause a constructor invocation to zero-initialize
its object even if the constructor itself does no initialization. The
analyzer now handles that before evaluating the call to the constructor,
using the same "default binding" mechanism that calloc() uses, rather
than simply ignoring the zero-initialization flag.
<rdar://problem/14212563>
llvm-svn: 184815
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to make sure virtual base classes are always initialized once,
the AST contains initializers for the base class in /all/ of its
descendents, not just the immediate descendents. However, at runtime,
the most-derived object is responsible for initializing all the virtual
base classes; all the other initializers will be ignored.
The analyzer now checks to see if it's being called from another base
constructor, and if so does not perform virtual base initialization.
<rdar://problem/14236851>
llvm-svn: 184814
|
|
|
|
|
|
|
| |
Specifically, CallExpr::getCalleeDecl() can return null, so make sure to
handle that correctly.
llvm-svn: 184813
|
|
|
|
|
|
| |
usage of clang as a library.
llvm-svn: 184812
|
|
|
|
|
|
|
|
|
|
| |
numbers as we deserialize class template partial specializations. We can't
assume that the old sequence numbers will work.
The sequence numbers are still deterministic, but are now a lot less
predictable for class template partial specializations in modules/PCH.
llvm-svn: 184811
|
|
|
|
|
|
|
| |
Using "delete" on a pointer to an incomplete type can't throw.
While I'm here, clean up the signature of the canCalleeThrow() helper.
llvm-svn: 184810
|
|
|
|
| |
llvm-svn: 184807
|
|
|
|
| |
llvm-svn: 184804
|
|
|
|
| |
llvm-svn: 184803
|
|
|
|
|
|
|
|
| |
Use castAs<> where appropriate. Don't check conditionals which are
always true. Delete a bit of dead code. Reindent a bunch of code which
is no longer guarded by an if statement.
llvm-svn: 184801
|
|
|
|
| |
llvm-svn: 184796
|
|
|
|
| |
llvm-svn: 184795
|
|
|
|
| |
llvm-svn: 184794
|
|
|
|
| |
llvm-svn: 184791
|