| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
decltype(long_name_forcing_break)
f() {}
After:
decltype(long_name_forcing_break)
f() {}
llvm-svn: 207965
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
void f() { my_int a = (my_int) * b; }
void f() { return P ? (my_int) * P : (my_int)0; }
After:
void f() { my_int a = (my_int)*b; }
void f() { return P ? (my_int)*P : (my_int)0; }
Differential Revision: http://reviews.llvm.org/D3576
llvm-svn: 207964
|
| |
|
|
|
|
| |
Patch by Dimitry Andric!
llvm-svn: 207963
|
| |
|
|
| |
llvm-svn: 207962
|
| |
|
|
|
|
|
|
|
|
| |
Before:
SomeFunction([](decltype(x), A * a) {});
After:
SomeFunction([](decltype(x), A *a) {});
llvm-svn: 207961
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
#ifdef _DEBUG
int foo( int i = 0 )
#else
int foo( int i = 5 )
#endif { return i; }
After:
#ifdef _DEBUG
int foo( int i = 0 )
#else
int foo( int i = 5 )
#endif
{
return i;
}
llvm-svn: 207958
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
condition blocks.
Document and simplify ResolveCondition.
1. Introduce a temporary special case for temporary desctructors when resolving
the branch condition - in an upcoming patch, alexmc will change temporary
destructor conditions to not run through this logic, in which case we can remove
this (marked as FIXME); this currently fixes a crash.
2. Simplify ResolveCondition; while documenting the function, I noticed that it
always returns the last statement - either that statement is the condition
itself (in which case the condition was returned anyway), or the rightmost
leaf is returned; for correctness, the rightmost leaf must be evaluated anyway
(which the CFG does in the last statement), thus we can just return the last
statement in that case, too. Added an assert to verify the invariant.
llvm-svn: 207957
|
| |
|
|
| |
llvm-svn: 207956
|
| |
|
|
|
|
| |
These used to interact badly with AlwaysBreakBeforeMultilineStrings.
llvm-svn: 207955
|
| |
|
|
|
|
|
|
| |
Ideally, importing Foo.a from Foo.b would "do the right thing", but
until it does, this patch makes it an error rather than allow it to
silently be ignored.
llvm-svn: 207948
|
| |
|
|
| |
llvm-svn: 207933
|
| |
|
|
| |
llvm-svn: 207932
|
| |
|
|
| |
llvm-svn: 207931
|
| |
|
|
|
|
|
| |
Add support for the remaining hints from the ACLE. Although __dbg is listed as
a hint, it is handled different, so it is not covered by this change.
llvm-svn: 207930
|
| |
|
|
|
|
|
|
| |
Windows on ARM uses AAPCS, but has some deviations. wchar_t remains an unsigned
short on WoA, which does not conform to AAPCS. Ensure that wchar_t is defined
accordingly.
llvm-svn: 207929
|
| |
|
|
|
|
|
|
|
|
| |
* Fixes a "return" that was indented at the same level as the continuation
from the previous line
* Wrap several lines to 80 columns
* Remove an if check that was always true
* Move a variable declaration slightly closer to its use
llvm-svn: 207922
|
| |
|
|
| |
llvm-svn: 207921
|
| |
|
|
|
|
| |
That's exactly what TinyPtrVector was designed for. No functionality change.
llvm-svn: 207919
|
| |
|
|
|
|
|
|
| |
a std::vector that allocates on the heap. As a consequence, we have to
run all of their destructors when tearing down the set, not just
deallocate the memory blobs.
llvm-svn: 207902
|
| |
|
|
|
|
|
|
|
|
| |
initializing an array unless we need it. Specifically, position the
creation of a new basic block after we've checked all of the cases that
bypass the need for it.
Fixes another leak in test/CodeGen* found by LSan.
llvm-svn: 207900
|
| |
|
|
|
|
| |
parsing.
llvm-svn: 207899
|
| |
|
|
|
|
|
|
|
| |
Having various possible states of initialization following construction doesn't
add value here.
Also remove the unused size_reserve parameter.
llvm-svn: 207897
|
| |
|
|
| |
llvm-svn: 207896
|
| |
|
|
|
|
|
|
| |
This was accidentally committed.
This reverts commit r207892.
llvm-svn: 207893
|
| |
|
|
|
|
|
|
|
| |
Naming the destructor using a typedef-name for the class-name is
well-formed.
This fixes PR19620.
llvm-svn: 207892
|
| |
|
|
|
|
|
|
| |
apply the NRVO candidate flag to all possible NRVO candidates here, and remove the flags in computeNRVO or upon template instantiation. A variable now has NRVO applied if and only if every return statement in that scope returns that variable. This is nearly optimal.
Performs NRVO roughly 7% more often in a bootstrap build of clang. Patch co-authored by Richard Smith.
llvm-svn: 207890
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Passing objects directly (in registers or memory) creates a second copy
of the object in the callee. The callee always destroys its copy, but
we also have to destroy any temporary created in the caller. In other
words, copy elision of these kinds of objects is impossible.
Objects larger than 8 bytes with non-trivial dtors and trivial copy
ctors are still passed indirectly, and we can still elide copies of
them.
Fixes PR19640.
llvm-svn: 207889
|
| |
|
|
|
|
|
|
|
|
|
| |
condition to a constant and emit only the relevant statement. In that
case, we were previously creating the epilog jump destination, a cleanup
scope, and emitting any condition variable into it. Instead, we can emit
the condition variable (if we have one) into the cleanup scope used for
the entire folded case sequence. We avoid creating a jump dest, a basic
block, and an extra cleanup scope. Win!
llvm-svn: 207888
|
| |
|
|
| |
llvm-svn: 207883
|
| |
|
|
|
|
|
| |
We were synthesizing new arguments from e.g. '/Tcfile.c' arguments,
but didn't handle ownership correctly.
llvm-svn: 207880
|
| |
|
|
|
|
|
|
|
| |
whole code would be better with std::unique_ptr managing the lifetimes
of the handlers, but I wanted to make a targeted fix to the leaks first.
With this change, all of the Clang preprocessor tests are leak free with
LSan.
llvm-svn: 207872
|
| |
|
|
| |
llvm-svn: 207870
|
| |
|
|
|
|
| |
VarDecl.
llvm-svn: 207867
|
| |
|
|
|
|
| |
PR19568
llvm-svn: 207858
|
| |
|
|
| |
llvm-svn: 207854
|
| |
|
|
| |
llvm-svn: 207852
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
@interface BSApplicationController () {
@private
id _extraIvar;
}
@end
After:
@interface BSApplicationController ()
{
@private
id _extraIvar;
}
@end
llvm-svn: 207849
|
| |
|
|
| |
llvm-svn: 207848
|
| |
|
|
| |
llvm-svn: 207842
|
| |
|
|
| |
llvm-svn: 207841
|
| |
|
|
|
|
| |
range accessor in addition to the iterators. Updated code using iterators to use range-based for loops.
llvm-svn: 207837
|
| |
|
|
|
|
| |
No functional changes intended.
llvm-svn: 207836
|
| |
|
|
|
|
| |
Also add basic cpp ABI tests where they differ from C ABI output.
llvm-svn: 207834
|
| |
|
|
| |
llvm-svn: 207833
|
| |
|
|
|
|
|
| |
This includes the addition of the virtual function:
TargetCodeGenInfo::EmitTargetMD()
llvm-svn: 207832
|
| |
|
|
|
|
|
| |
ACLE adds the __sevl() extension. Rename the hint from a custom name to the
ACLE specified name.
llvm-svn: 207829
|
| |
|
|
|
|
| |
Landing this separately to make the previous commits easy to follow at home.
llvm-svn: 207826
|
| |
|
|
|
|
|
|
| |
The Preprocessor::Initialize() function already offers a clear interface to
achieve this, further reducing the confusing number of states a newly
constructed preprocessor can have.
llvm-svn: 207825
|
| |
|
|
|
|
|
| |
Preprocessor::enableIncrementalProcessing() provides a consistent interface to
enable the feature.
llvm-svn: 207824
|
| |
|
|
|
|
|
|
|
| |
These calls to ConsumeCodeCompletionToken() caused parsing to continue
needlessly when an immediate cutOffParsing() would do.
Document the function to clarify its correct usage.
llvm-svn: 207823
|