| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Patch by Dmitri Shubin!
llvm-svn: 153585
|
| |
|
|
|
|
|
| |
provide 'fixit' hint when dictionary index
is not of proper type. // rdar://11062080
llvm-svn: 153584
|
| |
|
|
|
|
|
|
| |
retry without inlining.
(+ other minor cleanups)
llvm-svn: 153581
|
| |
|
|
|
|
|
|
| |
the root function.
(This is a bit cleaner then using the StackFrame.)
llvm-svn: 153580
|
| |
|
|
| |
llvm-svn: 153578
|
| |
|
|
|
|
|
|
|
| |
concerning qualified declarator-ids. We now diagnose extraneous
qualification at namespace scope (which we had previously missed) and
diagnose these qualification errors for all kinds of declarations; it
was rather uneven before. Fixes <rdar://problem/11135644>.
llvm-svn: 153577
|
| |
|
|
|
|
|
|
|
|
|
| |
search for the specialization (in a folding set) and, if not found
form a *Decl that is then inserted into that folding set. In rare
cases, the folding set may be reallocated between the search and the
insertion, causing a crash. No test case, because triggering rehashing
consistently in a small test case is not feasible. Fixes
<rdar://problem/11115071>.
llvm-svn: 153575
|
| |
|
|
| |
llvm-svn: 153568
|
| |
|
|
| |
llvm-svn: 153566
|
| |
|
|
| |
llvm-svn: 153565
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that libclang creates.
-Introduce CXGlobalOptFlags enum for the new options that can be
set on the CXIndex object.
-CXGlobalOpt_ThreadBackgroundPriorityForIndexing affects:
clang_indexSourceFile
clang_indexTranslationUnit
clang_parseTranslationUnit
clang_saveTranslationUnit
-CXGlobalOpt_ThreadBackgroundPriorityForEditing affects:
clang_reparseTranslationUnit
clang_codeCompleteAt
clang_annotateTokens
rdar://9075282
llvm-svn: 153562
|
| |
|
|
|
|
| |
it at global namespace.
llvm-svn: 153561
|
| |
|
|
|
|
|
| |
due to compiler errors, use a crash recovery thread to do the AST writing for
protection.
llvm-svn: 153560
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
flag as GCC uses: -fstrict-enums). There is a *lot* of code making
unwarranted assumptions about the underlying type of enums, and it
doesn't seem entirely reasonable to eagerly break all of it.
Much more importantly, the current state of affairs is *very* good at
optimizing based upon this information, which causes failures that are
very distant from the actual enum. Before we push for enabling this by
default, I think we need to implement -fcatch-undefined-behavior support
for instrumenting and trapping whenever we store or load a value outside
of the range. That way we can track down the misbehaving code very
quickly.
I discussed this with Rafael, and currently the only important cases he
is aware of are the bool range-based optimizations which are staying
hard enabled. We've not seen any issue with those either, and they are
much more important for performance.
llvm-svn: 153550
|
| |
|
|
|
|
|
|
|
| |
completion item. For example, if the code completion itself represents
a declaration in a namespace (say, std::vector), then this API
retrieves the cursor kind and name of the namespace (std). Implements
<rdar://problem/11121951>.
llvm-svn: 153545
|
| |
|
|
|
|
|
| |
necessarily mean we've found a function declarator. If the next token is not
a ')', this is actually a parenthesized pack expansion.
llvm-svn: 153544
|
| |
|
|
|
|
|
|
| |
disables all compiler warnings.
rdar://11059556
llvm-svn: 153539
|
| |
|
|
|
|
| |
// rdar://11124775
llvm-svn: 153535
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The analyzer gives up path exploration under certain conditions. For
example, when the same basic block has been visited more than 4 times.
With inlining turned on, this could lead to decrease in code coverage.
Specifically, if we give up inside the inlined function, the rest of
parent's basic blocks will not get analyzed.
This commit introduces an option to enable re-run along the failed path,
in which we do not inline the last inlined call site. This is done by
enqueueing the node before the processing of the inlined call site
with a special policy encoded in the state. The policy tells us not to
inline the call site along the path.
This lead to ~10% increase in the number of paths analyzed. Even though
we expected a much greater coverage improvement.
The option is turned off by default for now.
llvm-svn: 153534
|
| |
|
|
| |
llvm-svn: 153533
|
| |
|
|
|
|
|
|
|
| |
Report root function name with exhausted block diagnostic.
Also, use stack frames, not just any location context when checking if
the basic block is in the same context.
llvm-svn: 153532
|
| |
|
|
|
|
|
|
| |
analyzes.
(This method can be called twice on the same function.)
llvm-svn: 153531
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 153530
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expansions, e.g
"#include MACRO(STUFF)".
-As an inclusion position for the included file, use the file location of the file where it
was included but *after* the macro expansions. We want the macro expansions to be considered
as before-in-translation-unit for everything in the included file.
-In the preprocessing record take into account that only inclusion directives can be encountered
as "out-of-order" (by comparing the start of the range which for inclusions is the hash location)
and use binary search if there is an extreme number of macro expansions in the include directive.
Fixes rdar://11111779
llvm-svn: 153527
|
| |
|
|
|
|
| |
// rdar://11124354
llvm-svn: 153526
|
| |
|
|
| |
llvm-svn: 153523
|
| |
|
|
|
|
|
|
| |
list of identifiers that that 'public' names at the end of the
translation unit, e.g., defined macros or identifiers with top-level
names, in sorted order. Meant to support <rdar://problem/10921596>.
llvm-svn: 153522
|
| |
|
|
|
|
| |
same. pr12357.
llvm-svn: 153515
|
| |
|
|
|
|
| |
case that I forgot to check in.
llvm-svn: 153512
|
| |
|
|
|
|
|
|
|
| |
last N months. This required a brief soliloquy about change in
an uncertainly-versioned world.
I believe I've gotten the right target versions on all these changes.
llvm-svn: 153501
|
| |
|
|
|
|
|
| |
isConstructorDeclaration also needs updating for any extension to the
grammar of a direct-declarator.
llvm-svn: 153490
|
| |
|
|
|
|
|
|
|
|
|
|
| |
assigned to a struct. This is fallout from inlining results, which expose
far more patterns where people stuff CF objects into structs and pass them
around (and we can reason about it). The problem is that we don't have
a general way to detect when values have escaped, so as an intermediate step
we need to eagerly prune out such tracking.
Fixes <rdar://problem/11104566>.
llvm-svn: 153489
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
constructor, but X is not a known typename, check whether the tokens could
possibly match the syntax of a declarator before concluding that it isn't
a constructor. If it's definitely ill-formed, assume it is a constructor.
Empirical evidence suggests that this pattern is much more often a
constructor with a typoed (or not-yet-declared) type name than any of the
other possibilities, so the extra cost of the check is not expected to be
problematic.
llvm-svn: 153488
|
| |
|
|
|
|
|
| |
We don't currently support these options.
rdar://11120518
llvm-svn: 153485
|
| |
|
|
| |
llvm-svn: 153481
|
| |
|
|
|
|
|
|
|
|
|
|
| |
1. Don't short-circuit conditional statements that are checking flags.
Otherwise, the driver emits warnings about unused arguments.
2. -mkernel and -fapple-kext imply no exceptions, so claim exception related
arguments now to avoid warnings about unused arguments.
rdar://11120518
llvm-svn: 153478
|
| |
|
|
|
|
|
| |
argument warning.
Part of rdar://11120518
llvm-svn: 153470
|
| |
|
|
|
|
|
| |
argument warning.
Part of rdar://11120518
llvm-svn: 153469
|
| |
|
|
|
|
|
|
| |
between unscoped enumerations and class template member specializations,
whose behavior is currently under discussion in CWG (and for which there
is a preference to not implement the currently-standardized wording).
llvm-svn: 153464
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unscoped enumeration members: an enumerator name which is visible in the
out-of-class definition of a member of a templated class might not actually
exist in the instantiation of that class, if the enumeration is also lexically
defined outside the class definition and is explicitly specialized.
Depending on the result of a CWG discussion, we may have a different resolution
for a class of problems in this area, but this fixes the immediate issue of a
crash-on-invalid / accepts-invalid (depending on +Asserts). Thanks to Johannes
Schaub for digging into the standard wording to find how this case is currently
specified to behave.
llvm-svn: 153461
|
| |
|
|
| |
llvm-svn: 153460
|
| |
|
|
| |
llvm-svn: 153459
|
| |
|
|
|
|
| |
fails in testing.
llvm-svn: 153454
|
| |
|
|
| |
llvm-svn: 153453
|
| |
|
|
| |
llvm-svn: 153449
|
| |
|
|
| |
llvm-svn: 153447
|
| |
|
|
|
|
|
| |
This makes sense because chunk's ctor is also out of line and simplifies considerably
when inlined with a constant parameter. Shrinks clang on i386-linux-Release+Asserts by 65k.
llvm-svn: 153446
|
| |
|
|
|
|
|
| |
typo correction to introduce a nested-name-specifier; we aren't
prepared to handle it here. Fixes PR12297 / <rdar://problem/11075219>.
llvm-svn: 153445
|
| |
|
|
|
|
| |
symbols. // rdar://11103982
llvm-svn: 153443
|
| |
|
|
|
|
|
|
| |
InjectedClassNameType; otherwise, it won't be properly wired to the
original (canonical) declaration when it is deserialized. Fixes
<rdar://problem/11112464>.
llvm-svn: 153442
|