| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
before binary/ternary operators.
Basically, it doesn't seem right to indent a nested block aligned to a
binary or ternary operator.
Before:
int i = aaaaaa ? 1 //
: [] {
return 2; //
}();
llvm::errs() << "number of twos is "
<< std::count_if(v.begin(), v.end(), [](int x) {
return x == 2; // force break
});
After:
int i = aaaaaa ? 1 //
: [] {
return 2; //
}();
llvm::errs() << "number of twos is "
<< std::count_if(v.begin(), v.end(), [](int x) {
return x == 2; // force break
});
llvm-svn: 237263
|
| |
|
|
|
|
|
|
|
|
| |
Before:
void f() { f(new a(), c *d); }
After:
void f() { f(new a(), c * d); }
llvm-svn: 237249
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was fooled by the comment.
Before:
SOME_UNRELATED_MACRO
/*static*/ int i;
After:
SOME_UNRELATED_MACRO
/*static*/ int i;
llvm-svn: 237246
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
[aaaaaaaaaaaaaaaaaaaaaaa
.aaaaaaaa[aaaaaaaaaaaaaaaaaaaaa] aaaaaaaaaaaaaaaaaaaaaa];
After:
[aaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaa[aaaaaaaaaaaaaaaaaaaaa]
aaaaaaaaaaaaaaaaaaaaaa];
llvm-svn: 237244
|
| |
|
|
|
|
| |
In some rare cases shared copies of lastprivate/firstprivate variables were not updated after the loop directive.
llvm-svn: 237243
|
| |
|
|
| |
llvm-svn: 237241
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto my_lambda =
[](const string &some_parameter) { return some_parameter.size(); };
After:
auto my_lambda = [](const string &some_parameter) {
return some_parameter.size();
};
llvm-svn: 237235
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
vector<int> iiiiiiiiiiiiiii = { //
1111111111, 2222222222, 33333333333, 4444444444, //
111111111, 222222222, 3333333333, 444444444, //
11111111, 22222222, 333333333, 44444444};
After:
vector<int> iiiiiiiiiiiiiii = { //
1111111111, 2222222222, 33333333333, 4444444444, //
111111111, 222222222, 3333333333, 444444444, //
11111111, 22222222, 333333333, 44444444};
llvm-svn: 237233
|
| |
|
|
|
|
| |
standard.
llvm-svn: 237202
|
| |
|
|
|
|
|
|
|
| |
Previously, if a semi-colon is unexpectedly added before a closing ')', ']' or
'}', two errors and one note would emitted, and the parsing would get confused
to which scope it was in. This change consumes the semi-colon, recovers
parsing better, and emits only one error with a fix-it.
llvm-svn: 237192
|
| |
|
|
| |
llvm-svn: 237183
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
GetOutputStream() owns the stream it returns pointer to and the
pointer should never be freed by us. When we fail to load and exit
early, unique_ptr still holds the pointer and frees it which leads to
compiler crash when CompilerInstance attempts to free it again.
Added regression test for failed bitcode linking.
Differential Revision: http://reviews.llvm.org/D9625
llvm-svn: 237159
|
| |
|
|
| |
llvm-svn: 237123
|
| |
|
|
|
|
| |
Patch thanks to Vladimir Voskresensky.
llvm-svn: 237115
|
| |
|
|
| |
llvm-svn: 237114
|
| |
|
|
|
|
|
|
|
| |
sys/time.h on Solaris (and possibly other systems) defines "SEC" as "1"
using a cpp macro. The result is that this fails to compile.
Fixes https://llvm.org/PR23482
llvm-svn: 237113
|
| |
|
|
|
|
|
|
|
|
| |
Before:
#define MACRO() [](A * a) { return 1; }
After:
#define MACRO() [](A *a) { return 1; }
llvm-svn: 237109
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
#define MACRO() \
Debug(aaa, /* force line break */ \
{ \
int i; \
int j; \
})
After:
#define MACRO() \
Debug(aaa, /* force line break */ \
{ \
int i; \
int j; \
})
llvm-svn: 237108
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
a) Pull out a class LevelIndentTracker whose responsibility is to keep track
of the indent of levels across multiple annotated lines.
b) Put all responsibility for merging lines into the LineJoiner; make the
LineJoiner iterate over the lines so we never operate on a line that might
be merged later; this makes the interface safer to use.
c) Move formatting of the end-of-file whitespace into formatFirstToken.
Fix bugs that became obvious after the refactoring:
1. We would not format lines with offsets correctly inside nested blocks if
only the outer expression was affected:
int x = s({ // clang-format only this line
class X {
public:
// ^ this starts at the non-modified indnent level; previously we would
// not fix this, now we correctly outdent it.
void f();
};
});
2. We would incorrectly align comments across lines that do not have comments
for lines with nested blocks:
int expression; // with comment
int x = s({
int y; // comment
int z; // we would incorrectly align this comment with the comment on
// 'expression'
});
llvm-svn: 237104
|
| |
|
|
|
|
| |
lop based directives.
llvm-svn: 237102
|
| |
|
|
|
|
| |
'schedule' clause for combined directives requires additional processing. Special helper variable is generated, that is captured in the outlined parallel region for 'parallel for' region. This captured variable is used to store chunk expression from the 'schedule' clause in this 'parallel for' region.
llvm-svn: 237100
|
| |
|
|
|
|
|
|
|
|
| |
The MachO toolchain has an isTargetIOSBased method, but it isn't
virtual so it isn't very meaningful to call it. After thinking about
this, I guess that putting this logic in the MachO class is a bit of a
layering violation anyway. Do this more like how we handle
AddLinkRuntimeLibArgs instead.
llvm-svn: 237095
|
| |
|
|
|
|
|
|
| |
This time without a stray "true" in an argument list.
This reverts r237077, restoring r237074.
llvm-svn: 237091
|
| |
|
|
|
|
|
| |
strings and remove the setting of TargetOptions::UseSoftFloat to
match the code change in llvm r237079.
llvm-svn: 237080
|
| |
|
|
|
|
| |
This revert r237074. These tests are failing all over the place.
llvm-svn: 237077
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Compiler-rt's Profiling library isn't part of the stdlib, so -nostdlib
shouldn't prevent it from being linked. This makes Darwin behave like
other toolchains, and link in the profile runtime irrespective of
-nostdlib, since the resulting program can't be run unless you link
this.
I've also added a test to show that other toolchains already behave
like this.
llvm-svn: 237074
|
| |
|
|
|
|
|
|
|
| |
Empty assembly string will not introduce assembly code in the output
binary and it is often used as a trick in the header to disable
optimizations. It doesn't conflict with the purpose of the option so it
is allowed with -fno-gnu-inline-asm flag.
llvm-svn: 237073
|
| |
|
|
| |
llvm-svn: 237071
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function template earlier.
This is necessary in order to allow the use of a constexpr member function, or
a member function with deduced return type, of a local class within a
surrounding instantiated function template specialization.
Patch by Michael Park!
This re-commits r236063, which was reverted in r236134, along with a fix for a
delayed template parsing bug that was exposed by this change.
llvm-svn: 237064
|
| |
|
|
|
|
|
|
| |
No functional change.
Differential Revision: http://reviews.llvm.org/D9621
llvm-svn: 237056
|
| |
|
|
|
|
|
|
|
|
| |
compiler.
No functional change.
Differential Revision: http://reviews.llvm.org/D9618
llvm-svn: 237055
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
AsmLabel is heavily used in system level and firmware to redirect
function and access platform specific labels. They are also extensively
used in system headers which makes this option unusable for many
users. Since AsmLabel doesn't introduce any assembly code into the
output binary, it shouldn't be considered as inline-asm.
Reviewers: bob.wilson, rnk
Reviewed By: rnk
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D9679
llvm-svn: 237048
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8784
llvm-svn: 237001
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
NSString s = @"aaaa"
@"bbbb";
After:
NSString s = @"aaaa"
@"bbbb";
llvm-svn: 237000
|
| |
|
|
|
|
|
|
| |
test macro only supports C++ style attributes, it doesn't apply to code compiled as C code, and can lead to diagnostics when given a scoped attribute.
This addresses PR23435.
llvm-svn: 236996
|
| |
|
|
| |
llvm-svn: 236995
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifically, calculate the deviation between the shortest and longest
element (which is used to prevent excessive whitespace) per column, not
overall. This automatically handles the corner cases of a single column
and a single row so that the actualy implementation becomes simpler.
Before:
vector<int> x = {1,
aaaaaaaaaaaaaaaaaaaaaa,
2,
bbbbbbbbbbbbbbbbbbbbbb,
3,
cccccccccccccccccccccc};
After:
vector<int> x = {1, aaaaaaaaaaaaaaaaaaaaaa,
2, bbbbbbbbbbbbbbbbbbbbbb,
3, cccccccccccccccccccccc};
llvm-svn: 236992
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
_asm {
} int i;
After:
_asm {
}
int i;
llvm-svn: 236985
|
| |
|
|
|
|
| |
NFC intended.
llvm-svn: 236982
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
export function foo() {} export function bar() {}
After:
export function foo() {
}
export function bar() {
}
llvm-svn: 236978
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D9079
llvm-svn: 236975
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Pull various parts of the UnwrappedLineFormatter into their own
abstractions. NFC.
There are two things left for subsequent changes (to keep this
reasonably small)
- the UnwrappedLineFormatter now has a bad name
- the UnwrappedLineFormatter::format function is still too large
llvm-svn: 236974
|
| |
|
|
|
|
|
| |
We now use an enum which maps the marketing name (almost always a year)
to the major version number.
llvm-svn: 236967
|
| |
|
|
|
|
|
| |
MSVC 2015 changed behavior from 2013; it imports move assignment
operators.
llvm-svn: 236966
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We didn't supporting taking the address of virtual member functions
which overrode a method in a virtual base. We simply need to encode the
virtual base index in the member pointer.
This fixes PR23452.
N.B. There is no data member pointer side to this change because taking
the address of a virtual bases' data member gives you a member pointer
whose type is derived from the virtual bases' type, not the most derived
type.
llvm-svn: 236962
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC 2015 renamed the symbol found by name lookup for 'std::terminate'
so we cannot rely on using '?terminate@@YAXXZ'. Furthermore, it seems
that 2015 will be the first release of MSVC which permits inlining a
function which is noexcept into a function which isn't. This is
implemented by creating a cleanup for the invoker which jumps to
__std_terminate. Clang's implementation of this aspect of the MSVC
scheme is slightly less efficient in this respect because we use a
catch handler configured as a catch-all handler instead.
llvm-svn: 236961
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaa) << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
After:
llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaa)
<< aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
Also, cleanup and simplify the operator wrapping logic.
llvm-svn: 236960
|
| |
|
|
|
|
| |
non-const version. Most of the Decl hierarchy already did it this way this just makes the rest consistent.
llvm-svn: 236959
|
| |
|
|
|
|
|
|
| |
Some compilers ignore everything after a semicolon in such inline asm
blocks and thus, the closing brace must not be moved to the previous
line.
llvm-svn: 236946
|
| |
|
|
|
|
|
| |
This prevents clang-format from inadvertently joining stuff into macro
definitions as reported in llvm.org/PR23466.
llvm-svn: 236944
|