| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
pretty-print them properly (modulo the more general badness in alignment
attribute printing).
llvm-svn: 173752
|
|
|
|
|
|
|
| |
working, and add the missing attribute spellings. This brings _pascal,
_fastcall, _stdcall and _cdecl to life in -fborland-extensions mode.
llvm-svn: 173749
|
|
|
|
|
|
| |
decidedly non-reference, non-pointer type. Fixes <rdar://problem/13090123>.
llvm-svn: 173747
|
|
|
|
|
|
|
|
|
| |
as a keyword. Rationalize existing attributes to use it as appropriate, and to
not lie about some __declspec attributes being GNU attributes. In passing,
remove a gross hack which was discarding attributes which we could handle. This
results in us actually respecting the __pascal keyword again.
llvm-svn: 173746
|
|
|
|
|
|
|
| |
For fun, I added a comedy "actually obey the C++11 POD rules" option
which nobody is allowed to use.
llvm-svn: 173744
|
|
|
|
|
|
|
|
|
|
| |
This required plumbing through a new flag to determine whether a ParmVarDecl is
actually a parameter of a function declaration (as opposed to a function
typedef etc, where the attribute is prohibited). Weirdly, this attribute (just
like [[noreturn]]) cannot be applied to a function type, just to a function
declaration (and its parameters).
llvm-svn: 173726
|
|
|
|
|
|
| |
error. Jordan is right.
llvm-svn: 173713
|
|
|
|
|
|
| |
<rdar://problem/13098104>.
llvm-svn: 173708
|
|
|
|
|
|
|
|
| |
-fno-modules-global-index -cc1 option to allow one to disable the
index for performance testing purposes, but with a 10% win in
-fsyntax-only time, there is no reason a user would do this.
llvm-svn: 173707
|
|
|
|
|
|
|
| |
pool in the global module index is not worthwhile. Update comments to
limit the scope of the global module index to identifiers.
llvm-svn: 173705
|
|
|
|
| |
llvm-svn: 173702
|
|
|
|
|
|
| |
Fixes a crash. Thanks, Richard.
llvm-svn: 173701
|
|
|
|
| |
llvm-svn: 173700
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa = aaaaaaaaaaaaaaa
.aaaaaaaaaaaaaaaa;
aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) {}
After:
for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa =
aaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaa;
aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) {}
llvm-svn: 173695
|
|
|
|
|
|
|
|
|
|
| |
ModuleManager::visit() by keeping a free list of the two data
structures used to store state (a preallocated stack and a visitation
number vector). Improves -fsyntax-only performance for my modules test
case by 2.8%. Modules has pulled ahead by almost 10% with the global
module index.
llvm-svn: 173692
|
|
|
|
|
|
|
|
|
|
| |
This would be against the style guide:
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Function_Declarations_and_Definitions#Function_Declarations_and_Definitions
Not sure what to do as a last resort if the function signature does not
fit onto a single line in Google style ..
llvm-svn: 173690
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
TypeSpecDecl *TypeSpecDecl::Create(ASTContext &C, DeclContext *DC,
SourceLocation L, IdentifierInfo *II,
Type *T) {}
After:
TypeSpecDecl *
TypeSpecDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
IdentifierInfo *II, Type *T) {}
This fixes llvm.org/PR14717.
llvm-svn: 173688
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
Constructor
: LooooooooooooooooooooongVariable(
LooooooooooooooooooooongValue) {}
After:
Constructor
: LooooooooooooooooooooongVariable(
LooooooooooooooooooooongValue) {}
llvm-svn: 173685
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before (in good cases):
for (auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
for (auto aaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa,
aaaa)) {}
After:
for (auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
for (auto aaaaaaaaaaaaaaaaaaaa :
aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa, aaaa)) {}
llvm-svn: 173684
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before we did not really systematically format those. Now, we format the
different cases as:
- 1 Line: a ? b : c;
- 2 Lines: short ? loooooooooong
: loooooooooong
- 2 Lines: loooooooooooooooong
? short : short
- 3 Lines: loooooooooooooooong
? loooooooooooooong
: loooooooooooooong
Not sure whether "?" and ":" should go on the new line, but it seems to
be the most consistent approach.
llvm-svn: 173683
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Use a hanging ident for function calls nested in binary expressions.
E.g.:
int aaaaa = aaaaaaaaa && aaaaaaaaaa(
aaaaaaaaaa);
2. Slightly improve heuristic for builder type expressions and reduce
penalty for breaking before "." and "->" in those.
3. Remove mostly obsolete metric of decreasing indent level. This
fixes: llvm.org/PR14931.
Changes #1 and #2 were necessary to keep tests passing after #3.
llvm-svn: 173680
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These always represent a continuation and we should increase the ident.
Before:
aaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa::
aaaaaaaaaaaaaaaaaaaa);
After:
aaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa::
aaaaaaaaaaaaaaaaaaaa);
llvm-svn: 173675
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
aaaaaaaa(aaaaaaaaa(
aaaaaaaaaa(),
aaaaaaaaa);
After:
aaaaaaaa(aaaaaaaaa(
aaaaaaaaaa(),
aaaaaaaaa);
llvm-svn: 173673
|
|
|
|
|
|
| |
specifying -fsanitize=address
llvm-svn: 173670
|
|
|
|
|
|
|
|
|
|
| |
The -E output from clang did not produce the correct indentation on the first line.
This is because MoveToLine returned false, and when this happens,
the regular process for producing initial indentation is skipped.
Thanks to Eli for suggesting a way to simplify this to a one-line change.
llvm-svn: 173657
|
|
|
|
|
|
| |
declaration header, we need to include the declaration header alongside Scalar.h in BackendUtil.
llvm-svn: 173648
|
|
|
|
|
|
| |
attribute).
llvm-svn: 173645
|
|
|
|
|
|
|
| |
permitted in standard C++, despite being silently accepted by many (all?) major
C++ implementations.
llvm-svn: 173643
|
|
|
|
|
|
| |
Patch by Will Wilson.
llvm-svn: 173630
|
|
|
|
|
|
|
|
| |
does not have one of its own. // rdar://13067629
Original patch (r173586 and r173587) by Fariborz Jahanian, modified by me.
llvm-svn: 173626
|
|
|
|
|
|
|
| |
Unfortunately, we can't accept the UCN as an extension because we're
required to treat it as two tokens for preprocessing purposes.
llvm-svn: 173622
|
|
|
|
|
|
|
|
| |
typedef if"
It caused unexpected warnings with @tparam.
llvm-svn: 173614
|
|
|
|
|
|
|
| |
In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.
llvm-svn: 173605
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of the gotchas (see changes to CodeGenFunction) was due to the fix in
r139416 (for PR10829). This only worked previously because the top level
lexical block would set the location to the end of the function, the debug
location would be updated (as per r139416), the location would be set to
the end of the function again (but that would no-op, since it was the same
as the previous location), then the return instruction would be emitted using
the debug location.
Once the top level lexical block was no longer emitted, the end-of-function
location change was causing the debug loc to be updated, regressing that bug.
llvm-svn: 173593
|
|
|
|
| |
llvm-svn: 173587
|
|
|
|
|
|
| |
latter does not have one of its own. // rdar://13067629
llvm-svn: 173586
|
|
|
|
| |
llvm-svn: 173581
|
|
|
|
| |
llvm-svn: 173578
|
|
|
|
| |
llvm-svn: 173574
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the analyzer sees an initializer, it checks if the initializer
contains a CXXConstructExpr. If so, it trusts that the CXXConstructExpr
does the necessary work to initialize the object, and performs no further
initialization.
This patch looks through any implicit wrapping expressions like
ExprWithCleanups to find the CXXConstructExpr inside.
Fixes PR15070.
llvm-svn: 173557
|
|
|
|
|
|
|
| |
on a type. Currently, it gives a generic "expected unqualified-id" error.
The new error message is "cannot use (dot|arrow) operator on a type".
llvm-svn: 173556
|
|
|
|
|
|
| |
object argument type for a member call.
llvm-svn: 173554
|
|
|
|
| |
llvm-svn: 173550
|
|
|
|
|
|
|
| |
-f(no-)color-diagnostics. In addition, dumpColor() function calls are added
to force color printing. No structural changes to -ast-dump.
llvm-svn: 173548
|
|
|
|
|
|
|
|
|
|
| |
The expression 'a->b.c()' contains a call to the 'c' method of 'a->b'.
We emit an error if 'a' is NULL, but previously didn't actually track
the null value back through the 'a->b' expression, which caused us to
miss important false-positive-suppression cases, including
<rdar://problem/12676053>.
llvm-svn: 173547
|
|
|
|
|
|
|
| |
This allows it to be used in places where the interesting statement
doesn't match up with the current node. No functionality change.
llvm-svn: 173546
|
|
|
|
|
|
| |
This should be used for testing only. Path pruning is still on by default.
llvm-svn: 173545
|
|
|
|
|
|
|
| |
"Prune" is the term for eliminating pieces of a path that are not
relevant to the user. "Suppress" means don't show that path at all.
llvm-svn: 173544
|
|
|
|
|
|
|
|
| |
factor the realpath calls into FileManager::getCanonicalName() so we
can cache the results of this epically slow operation. 5% speedup on
my modules test, and realpath drops out of the profile.
llvm-svn: 173542
|
|
|
|
|
|
| |
testcase for a situation it caused us to miss.
llvm-svn: 173540
|