| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 172910
|
| |
|
|
| |
llvm-svn: 172909
|
| |
|
|
| |
llvm-svn: 172907
|
| |
|
|
| |
llvm-svn: 172906
|
| |
|
|
| |
llvm-svn: 172905
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the CompletionChunks represent braces, colons or other one
character spellings. There is no need to call libclang, to figure out
how to write a colon. Instead we use an internal cache to retrieve the
correct spelling. As function calls from python are very expensive and
this is a performance critical part of auto completion this patch makes
formatting of auto completion results a lot faster.
Formatting time changes from 0.57 to 0.45 seconds
llvm-svn: 172901
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is a very performance critical point for auto completion. The manual
implementation gives a large speedup. As it does not complicate the code a lot,
I figured it is worth the change. If anybody understands why the CachedProperty
is here so much slower, I am very interested in working on an improvement of
CachedProperty.
Formatting time changes from 0.72 to 0.57 seconds.
llvm-svn: 172900
|
| |
|
|
|
|
|
|
|
| |
We can directly the number of the kind instead of going through the
completionChunkKindMap.
Formatting time changes from 0.84 to 0.72 seconds.
llvm-svn: 172899
|
| |
|
|
|
|
|
|
|
|
| |
Manually fix the order of UnwrappedLineParser.cpp as that one didn't
have its associated header as the first header.
This also uncovered a subtle inclusion order dependency as CLog.h didn't
include LLVM.h to pick up using declarations it relied upon.
llvm-svn: 172892
|
| |
|
|
|
|
|
| |
with other auxilliary test inputs and simplify the identification of
inputs to tests.
llvm-svn: 172890
|
| |
|
|
| |
llvm-svn: 172888
|
| |
|
|
| |
llvm-svn: 172886
|
| |
|
|
| |
llvm-svn: 172884
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Suppress the warning by just not emitting the report. The sink node
would get generated, which is fine since we did reach a bad state.
Motivation
Due to the way code is structured in some of these macros, we do not
reason correctly about it and report false positives. Specifically, the
following loop reports a use-after-free. Because of the way the code is
structured inside of the macro, the analyzer assumes that the list can
have cycles, so you end up with use-after-free in the loop, that is
safely deleting elements of the list. (The user does not have a way to
teach the analyzer about shape of data structures.)
SLIST_FOREACH_SAFE(item, &ctx->example_list, example_le, tmpitem) {
if (item->index == 3) { // if you remove each time, no complaints
assert((&ctx->example_list)->slh_first == item);
SLIST_REMOVE(&ctx->example_list, item, example_s, example_le);
free(item);
}
}
llvm-svn: 172883
|
| |
|
|
| |
llvm-svn: 172881
|
| |
|
|
|
|
|
|
| |
own initialization."
It broke, at least, linux, msvc and mingw bots.
llvm-svn: 172879
|
| |
|
|
|
|
|
|
|
| |
The warning is still under -Wuninitialized (although technically this
is defined behavior), but under a subgroup -Wstatic-self-init.
This addresses PR 10265.
llvm-svn: 172878
|
| |
|
|
|
|
| |
evaluate to lvalues (in C++).
llvm-svn: 172875
|
| |
|
|
| |
llvm-svn: 172865
|
| |
|
|
| |
llvm-svn: 172862
|
| |
|
|
| |
llvm-svn: 172861
|
| |
|
|
| |
llvm-svn: 172860
|
| |
|
|
|
|
|
|
| |
partially-substituted parameter pack in a template, forget about the
partially-substituted parameter pack: it is now completed. Fixes
<rdar://problem/12176336>.
llvm-svn: 172859
|
| |
|
|
| |
llvm-svn: 172858
|
| |
|
|
|
|
| |
the executable to be linked with UBSan.
llvm-svn: 172856
|
| |
|
|
| |
llvm-svn: 172855
|
| |
|
|
| |
llvm-svn: 172849
|
| |
|
|
|
|
|
|
|
| |
Makes sure that a deserialized macro is only added to the preprocessor macro definitions only once.
Unfortunately I couldn't get a reduced test case.
rdar://13016031
llvm-svn: 172843
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
r159549 / r159164 regressed clang to reject
struct s {};
struct s
operator++(struct s a)
{ return a; }
This fixes the regression. Richard, pleas check if this looks right.
llvm-svn: 172834
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Examples:
Calling implicit default constructor for Foo
Calling defaulted move constructor for Foo
Calling copy constructor for Foo
Calling implicit destructor for Foo
Calling defaulted move assignment operator for Foo
Calling copy assignment operator for Foo
llvm-svn: 172833
|
| |
|
|
|
|
|
|
| |
Examples:
Calling constructor for 'Foo'
Entered call from 'Foo::create'
llvm-svn: 172832
|
| |
|
|
| |
llvm-svn: 172831
|
| |
|
|
| |
llvm-svn: 172822
|
| |
|
|
|
|
| |
-fsanitize-blacklist doesn't accept DOSish pathnames.
llvm-svn: 172820
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch prepares being able to test for and fix more problems (see
FIXME in the test for example).
Previously we would output unwrapped lines for preprocessor directives
at the point where we also parsed the hash token. Since often
projections only terminate (and thus output their own unwrapped line)
after peeking at the next token, this would lead to the formatter seeing
the preprocessor directives out-of-order (slightly earlier). To be able
to correctly identify lines to merge, the formatter needs a well-defined
order of unwrapped lines, which this patch introduces.
llvm-svn: 172819
|
| |
|
|
| |
llvm-svn: 172818
|
| |
|
|
| |
llvm-svn: 172808
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
').' is likely part of a builder pattern statement.
This is based upon a patch developed by Nico Weber. Thank you!
Before:
int foo() {
return llvm::StringSwitch<Reference::Kind>(name).StartsWith(
".eh_frame_hdr", ORDER_EH_FRAMEHDR).StartsWith(
".eh_frame", ORDER_EH_FRAME).StartsWith(".init", ORDER_INIT).StartsWith(
".fini", ORDER_FINI).StartsWith(".hash", ORDER_HASH).Default(ORDER_TEXT);
}
After:
int foo() {
return llvm::StringSwitch<Reference::Kind>(name)
.StartsWith(".eh_frame_hdr", ORDER_EH_FRAMEHDR)
.StartsWith(".eh_frame", ORDER_EH_FRAME)
.StartsWith(".init", ORDER_INIT).StartsWith(".fini", ORDER_FINI)
.StartsWith(".hash", ORDER_HASH).Default(ORDER_TEXT);
}
Probably not ideal, but makes many cases much more readable.
The changes to overriding-ftemplate-comments.cpp don't seem better or
worse. We should address those soon.
llvm-svn: 172804
|
| |
|
|
|
|
|
|
|
|
|
| |
Before:
#include <a> // for x
#include <a/b/c> // for yz
After:
#include <a> // for x
#include <a/b/c> // for yz
llvm-svn: 172799
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
int a; // comment
int bbbbb; // comment
After:
int a; // comment
int bbbbb; // comment
llvm-svn: 172798
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
switch (foo) {
case a: {
int a = g();
h(a);
}
break;
}
Now:
switch (foo) {
case a: {
int a = g();
h(a);
} break;
}
llvm-svn: 172789
|
| |
|
|
|
|
|
| |
This doesn't work right with pointers to pointers, but that's likely just a
dupe of PR14884.
llvm-svn: 172785
|
| |
|
|
|
|
|
| |
complicated modules (<rdar://problem/13038265>). Unfortunately, this
un-fixes <rdar://problem/13016031>.
llvm-svn: 172783
|
| |
|
|
|
|
| |
Before: @selector(foo: )
Now: @selector(foo:)
llvm-svn: 172781
|
| |
|
|
|
|
|
| |
decay the parameter type immediately; let CheckParameter() do its
job. Fixes <rdar://problem/12071218>.
llvm-svn: 172780
|
| |
|
|
| |
llvm-svn: 172774
|
| |
|
|
|
|
|
| |
a template parameter; make that also include one that came from
'auto'. Fixes <rdar://problem/12078752>.
llvm-svn: 172770
|
| |
|
|
|
|
| |
to visit them.
llvm-svn: 172769
|
| |
|
|
|
|
|
|
| |
return type of a function by canonicalizing them away. They are
useless anyway, and conflict with our rules for template argument
deduction and __strong. Fixes <rdar://problem/12367446>.
llvm-svn: 172768
|
| |
|
|
| |
llvm-svn: 172766
|