| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
already knows what context it's looking in. Just pass that context in
instead of (questionably) recalculating it.
llvm-svn: 102818
|
| |
|
|
| |
llvm-svn: 102811
|
| |
|
|
|
|
| |
more resilient to bad code.
llvm-svn: 102793
|
| |
|
|
|
|
| |
(C) API, and will likely grow further in this direction in the future.
llvm-svn: 102779
|
| |
|
|
|
|
| |
fatal error has occurred.
llvm-svn: 102778
|
| |
|
|
|
|
|
|
|
| |
parameter with pointer-to-member type, we may have to perform a
qualification conversion, since the pointee type of the parameter
might be more qualified than the pointee type of the argument we form
from the declaration. Fixes PR6986.
llvm-svn: 102777
|
| |
|
|
|
|
|
|
| |
access. Fixes an assertion.
Fixes rdar://problem/7927811. Too lazy to reduce a test case.
llvm-svn: 102776
|
| |
|
|
|
|
| |
constant expression in C.
llvm-svn: 102762
|
| |
|
|
| |
llvm-svn: 102748
|
| |
|
|
| |
llvm-svn: 102747
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the mapping from local declarations to their instantiated
counterparts during template instantiation. Previously, we tried to do
some unholy merging of local instantiation scopes that involved
storing a single hash table along with an "undo" list on the
side... which was ugly, and never handled function parameters
properly.
Now, we just keep separate hash tables for each local instantiation
scope, and "combining" two scopes means that we'll look in each of the
combined hash tables. The combined scope stack is rarely deep, and
this makes it easy to avoid the "undo" issues we were hitting. Also,
I've simplified the logic for function parameters: if we're declaring
a function and we need the function parameters to live longer, we just
push them back into the local instantiation scope where we need them.
Fixes PR6990.
llvm-svn: 102732
|
| |
|
|
|
|
|
|
| |
instead of at the top-level.
Also, don't set NO_INSTALL=1 for c-index-test.
llvm-svn: 102724
|
| |
|
|
| |
llvm-svn: 102711
|
| |
|
|
|
|
| |
attributes invalid on type related checking so to add them to declarations only when everything is ok.
llvm-svn: 102710
|
| |
|
|
|
|
| |
warning generation.
llvm-svn: 102705
|
| |
|
|
|
|
|
|
|
|
|
| |
if *none* of the successors of the call expression is the exit block.
This matters when a call of bool type is the condition of (say) a while
loop in a function with no statements after the loop. This *can* happen
in C, but it's much more common in C++ because of overloaded operators.
Suppresses some substantial number of spurious -Wmissing-noreturn warnings.
llvm-svn: 102696
|
| |
|
|
| |
llvm-svn: 102695
|
| |
|
|
|
|
|
|
|
|
|
| |
specializations, which keeps track of the order in which they were
originally declared. We use this number so that we can always walk the
list of partial specializations in a predictable order during matching
or template instantiation. This also fixes a failure in Boost.Proto,
where SourceManager::isBeforeInTranslationUnit was behaving
poorly in inconsistent ways.
llvm-svn: 102693
|
| |
|
|
|
|
|
|
|
| |
a class with virtual bases. Just a patch until Sema starts (correctly) doing
most of this analysis.
Fixes PR 6622.
llvm-svn: 102692
|
| |
|
|
|
|
|
|
|
| |
InjectedClassNameType's Decl to point at the definition. It's a little
messy, but we do the same thing with classes and their record types,
since much of Clang expects that the TagDecl* one gets out of a type
is the definition. Fixes several Boost.Proto failures.
llvm-svn: 102691
|
| |
|
|
| |
llvm-svn: 102690
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
translation unit is parsed. This enables us to inline some calls when still
analyzing one function at a time.
Actions are classified into Function, CXXMethod, ObjCMethod,
ObjCImplementation.
This does not hurt performance much. The analysis time for sqlite3.c:
before:
real 17m52.440s
user 17m49.460s
sys 0m2.010s
after:
real 18m0.500s
user 17m56.900s
sys 0m2.330s
DisplayProgress option is broken now. -inine-call action is removed. It
will be reenabled in another form, perhaps as an indenpendant option.
llvm-svn: 102689
|
| |
|
|
|
|
| |
Also resolve a long-working FIXME in the test case I modified.
llvm-svn: 102688
|
| |
|
|
| |
llvm-svn: 102687
|
| |
|
|
| |
llvm-svn: 102686
|
| |
|
|
|
|
| |
when used by the exceptions routines. Fixes PR 6974.
llvm-svn: 102684
|
| |
|
|
| |
llvm-svn: 102681
|
| |
|
|
|
|
| |
might not have been an insertion block set at start. Fixes PR6975.
llvm-svn: 102677
|
| |
|
|
| |
llvm-svn: 102676
|
| |
|
|
| |
llvm-svn: 102674
|
| |
|
|
|
|
|
|
|
| |
entering the current instantiation. Set up a little to preserve type location
information for typename types while we're in there.
Fixes a Boost failure.
llvm-svn: 102673
|
| |
|
|
| |
llvm-svn: 102669
|
| |
|
|
|
|
|
|
| |
'--analyze'. There
are several known issues to address for it should be turned on by default.
llvm-svn: 102664
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
address of an overloaded function (or function template), perform that
resolution prior to determining the implicit conversion
sequence. This resolution is not part of the implicit conversion
sequence itself.
Previously, we would always consider this resolution to be a
function pointer decay, which was a lie: there might be an explicit &
in the expression, in which case decay should not occur. This caused
the CodeGen assertion in PR6973 (where we created a
pointer to a pointer to a function when we should have had a pointer
to a function), but it's likely that there are corner cases of
overload resolution where this would have failed.
Cleaned up the code involved in determining the type that will
produced afer resolving the overloaded function reference, and added
an assertion to make sure the result is correct. Fixes PR6973.
llvm-svn: 102650
|
| |
|
|
|
|
|
| |
categories. Issue usual warnings instead of
confusing error message. Radar 7920807
llvm-svn: 102645
|
| |
|
|
|
|
| |
llvm::GLobalVariable name may not match user visibile name for function static variables.
llvm-svn: 102644
|
| |
|
|
|
|
|
|
| |
header files).
Add USR support for 'static' functions and local variables, which can be handy for resolving named variables within a translation unit.
llvm-svn: 102641
|
| |
|
|
|
|
|
|
| |
blocks, since
they have no linkage and by definition are anonymous.
llvm-svn: 102640
|
| |
|
|
| |
llvm-svn: 102639
|
| |
|
|
| |
llvm-svn: 102638
|
| |
|
|
|
|
|
|
| |
ObjCMethodDecl::isVariadic().
Do some minor refactoring along the way.
llvm-svn: 102635
|
| |
|
|
|
|
| |
for similar methods. No functionality change.
llvm-svn: 102634
|
| |
|
|
|
|
| |
DeclContext, to satisfy the invariants that should hold on a RecordDecl.
llvm-svn: 102624
|
| |
|
|
| |
llvm-svn: 102623
|
| |
|
|
|
|
| |
instead of NDEBUG.
llvm-svn: 102622
|
| |
|
|
| |
llvm-svn: 102614
|
| |
|
|
|
|
|
|
|
| |
specializations, substitute the deduced template arguments and check
the resulting substitution before concluding that template argument
deduction succeeds. This marvelous little fix makes a bunch of
Boost.Spirit tests start working.
llvm-svn: 102601
|
| |
|
|
|
|
|
| |
specializations, separate out the deduction part from the checking and
substitution of the deduced arguments.
llvm-svn: 102600
|
| |
|
|
|
|
|
|
| |
IEEE-754, e.g.,
NAN != NAN ? 1 : 0 should return 1. Also fix the case for complex.
llvm-svn: 102598
|
| |
|
|
|
|
|
|
| |
bindings when the template argument is still an expression; it happens
while checking the template arguments of a class template partial
specializations. Fixes PR6964.
llvm-svn: 102595
|