| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Remove this variable (found by clang static analyzer).
llvm-svn: 123484
|
| |
|
|
|
|
| |
used; nuke all assignments and its declaration.
llvm-svn: 123483
|
| |
|
|
| |
llvm-svn: 123482
|
| |
|
|
|
|
|
|
|
|
| |
analyzer -cc1 options that are tailored to the
input type. If the input type is "C++", we should
only run the dead stores checker (for now). Similarly,
checks specific to Objective-C should only run
on Objective-C Code.
llvm-svn: 123481
|
| |
|
|
|
|
| |
it will expand to, if known. Propagate this information throughout Sema.
llvm-svn: 123470
|
| |
|
|
|
|
|
|
| |
warning flags.
Addresses rdar://8435969&8852495
llvm-svn: 123462
|
| |
|
|
| |
llvm-svn: 123460
|
| |
|
|
| |
llvm-svn: 123459
|
| |
|
|
|
|
|
|
|
|
|
| |
the case where the called function has fewer
formal arguments than actual arguments. This
fixes a crash in the analyzer when doing
function call inlining.
Patch by Zhenbo Xu!
llvm-svn: 123458
|
| |
|
|
|
|
|
|
| |
expansion in it, we may end up instantiating to an empty
expression-list. In this case, the variable is uninitialized; tweak
the instantiation logic to handle this case. Fixes PR8977.
llvm-svn: 123449
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expansion, when it is known due to the substitution of an out
parameter pack. This allows us to properly handle substitution into
pack expansions that involve multiple parameter packs at different
template parameter levels, even when this substitution happens one
level at a time (as with partial specializations of member class
templates and the signatures of member function templates).
Note that the diagnostic we provide when there is an arity mismatch
between an outer parameter pack and an inner parameter pack in this
case isn't as clear as the normal diagnostic for an arity
mismatch. However, this doesn't matter because these cases are very,
very rare and (even then) only typically occur in a SFINAE context.
The other kinds of pack expansions (expression, template, etc.) still
need to support optional tracking of the number of expansions, and we
need the moral equivalent of SubstTemplateTypeParmPackType for
substituted argument packs of template template and non-type template
parameters.
llvm-svn: 123448
|
| |
|
|
|
|
|
| |
bit-pattern. Continue punting on zero-initializing VLAs with a nonzero
pattern.
llvm-svn: 123439
|
| |
|
|
|
|
|
|
| |
replace all uses of the entry with the predecessor. There are no cleanups
relying on this right now, but if we ever want a cleanup with a phi inside
it, this will be important.
llvm-svn: 123438
|
| |
|
|
|
|
| |
switch() statements.
llvm-svn: 123429
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
involve template parameter packs at multiple template levels that
occur within the signatures members of class templates (and partial
specializations thereof). This is a work-in-progress that is deficient
in several ways, notably:
- It only works for template type parameter packs, but we need to
also support non-type template parameter packs and template template
parameter packs.
- It doesn't keep track of the lengths of the substituted argument
packs in the expansion, so it can't properly diagnose length
mismatches.
However, this is a concrete step in the right direction.
llvm-svn: 123425
|
| |
|
|
| |
llvm-svn: 123421
|
| |
|
|
|
|
|
| |
for efficiancy (still part of //rdar://8761767).
Per John's comment.
llvm-svn: 123401
|
| |
|
|
| |
llvm-svn: 123395
|
| |
|
|
|
|
|
|
| |
dead stores within nested assignments. I have
never seen an actual bug found by this specific
warning, and it can lead to many false positives.
llvm-svn: 123394
|
| |
|
|
|
|
| |
assigns. // rdar://8761767
llvm-svn: 123391
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
process, perform a number of refactorings:
- Move MiscNameMangler member functions to MangleContext
- Remove GlobalDecl dependency from MangleContext
- Make MangleContext abstract and move Itanium/Microsoft functionality
to their own classes/files
- Implement ASTContext::createMangleContext and have CodeGen use it
No (intended) functionality change.
llvm-svn: 123386
|
| |
|
|
|
|
|
|
|
| |
when we're actually matching a template template argument to a
template template parameter. Otherwise, use strict matching.
Fixes <rdar://problem/8859985> clang++: variadics and out-of-line definitions.
llvm-svn: 123385
|
| |
|
|
| |
llvm-svn: 123379
|
| |
|
|
| |
llvm-svn: 123378
|
| |
|
|
|
|
| |
getting the base region. This makes the RemoveDeadBindings() correct.
llvm-svn: 123375
|
| |
|
|
|
|
|
| |
since the bindings are purged after they are set up. Need to investigate
RemoveDeadBindings algorithm.
llvm-svn: 123374
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a struct value to a symbolic index into array.
RegionStore can't actually reason about this,
so we were getting bogus warnings about loading
uninitialized values from the array. The solution
is invalidate the entire array when we cannot
represent the binding explicitly.
Fixes <rdar://problem/8848957>
llvm-svn: 123368
|
| |
|
|
|
|
|
|
|
| |
and 'getBasePredecessor()' to 'getPredecessor()'.
Also remove a unneeded save-and-restore of
node builder's tag field.
llvm-svn: 123363
|
| |
|
|
|
|
| |
node builder's 'HasGeneratedNode' field.
llvm-svn: 123362
|
| |
|
|
|
|
|
| |
the node builder's "tag" ivar (which we would
like to remove).
llvm-svn: 123361
|
| |
|
|
|
|
| |
Fixes PR8967.
llvm-svn: 123360
|
| |
|
|
| |
llvm-svn: 123359
|
| |
|
|
| |
llvm-svn: 123354
|
| |
|
|
| |
llvm-svn: 123349
|
| |
|
|
|
|
|
|
| |
matching of variadic template template parameters to template
arguments. This paragraph was the subject of ISO C++ committee
document N2555: Extending Variadic Template Template Parameters.
llvm-svn: 123348
|
| |
|
|
| |
llvm-svn: 123344
|
| |
|
|
|
|
| |
bunch of duplicated checks for parameter pack/non-pack mismatches.
llvm-svn: 123343
|
| |
|
|
|
|
|
| |
(static_cast, dynamic_cast, reinterpret_cast, or const_cast) to
improve source-location information. Fixes PR8960.
llvm-svn: 123336
|
| |
|
|
| |
llvm-svn: 123332
|
| |
|
|
| |
llvm-svn: 123320
|
| |
|
|
|
|
|
|
|
| |
another pack expansion type. This can happen when rebuilding types in
the current instantiation.
Fixes <rdar://problem/8848837> (Clang crashing on libc++ <functional>).
llvm-svn: 123316
|
| |
|
|
|
|
|
| |
and mark the fields they use as mutable. This allows us to remove a few
const_casts.
llvm-svn: 123314
|
| |
|
|
| |
llvm-svn: 123313
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
delete the block we began emitting into if it had no predecessors. We never
want to do this, because there are several valid cases during statement
emission where an existing block has no known predecessors but will acquire
some later. The case in my test case doesn't inherently fall into this
category, because we could safely emit the case-range code before the statement
body, but there are examples with labels that can't be fallen into
that would also demonstrate this bug.
rdar://problem/8837067
llvm-svn: 123303
|
| |
|
|
|
|
| |
- See comment for why.
llvm-svn: 123296
|
| |
|
|
|
|
| |
Slight optimization of getObjCGCAttrKind.
llvm-svn: 123295
|
| |
|
|
| |
llvm-svn: 123293
|
| |
|
|
| |
llvm-svn: 123291
|
| |
|
|
|
|
|
| |
in ASTContext-allocated memory, copying the provided template
arguments. Use this new routine where we can. No functionality change.
llvm-svn: 123289
|
| |
|
|
| |
llvm-svn: 123280
|