| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 189496
|
| |
|
|
|
|
|
|
|
| |
template arguments
With the added debug assertions this fix is covered by existing Clang
tests. (& found some other issues, also fixed)
llvm-svn: 189495
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In the transition from declaration (with some members) to definition, we
were overwriting the list of members with the empty list when attaching
template parameters.
The fix is in llvm::DICompositeType::addMember (along with asserts that
cause this bug to be covered by existing Clang test cases), including
adding some asserts to catch this sort of issue which found issues fixed
in this commit.
llvm-svn: 189494
|
| |
|
|
|
|
|
|
|
| |
For users of libclangReplace, this patch affords the ability to apply
replacements in memory instead of writing to disk.
Differential Revision: http://llvm-reviews.chandlerc.com/D1519
llvm-svn: 189493
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When casting the address of a FunctionTextRegion to bool, or when adding
constraints to such an address, use a stand-in symbol to represent the
presence or absence of the function if the function is weakly linked.
This is groundwork for possible simple availability testing checks, and
can already catch mistakes involving inverted null checks for
weakly-linked functions.
Currently, the implementation reuses the "extent" symbols, originally created
for tracking the size of a malloc region. Since FunctionTextRegions cannot
be dereferenced, the extent symbol will never be used for anything else.
Still, this probably deserves a refactoring in the future.
This patch does not attempt to support testing the presence of weak
/variables/ (global variables), which would likely require much more of
a change and a generalization of "region structure metadata", like the
current "extents", vs. "region contents metadata", like CStringChecker's
"string length".
Patch by Richard <tarka.t.otter@googlemail.com>!
llvm-svn: 189492
|
| |
|
|
| |
llvm-svn: 189491
|
| |
|
|
|
|
|
|
|
|
|
| |
Fix a few things in one swoop.
# Add some negative tests.
# Fix some formatting issues.
# Add some missing IsThumb / ARMv8
# Fix some outs / ins mistakes.
llvm-svn: 189490
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is just enough to get "llvm-ranlib foo.a" working and tested. Making
llvm-ranlib a symbolic link to llvm-ar doesn't work so well with llvm's option
parsing, but ar's option parsing is mostly custom anyway.
This patch also removes the -X32_64 option. Looks like it was just added in
r10297 as part of implementing the current command line parsing. I can add it
back (with a test) if someone really has AIX portability problems without it.
llvm-svn: 189489
|
| |
|
|
| |
llvm-svn: 189488
|
| |
|
|
|
|
| |
- should help with FreeBSD buildbot
llvm-svn: 189487
|
| |
|
|
|
|
| |
Fixes build on systems where 'python' is not python2.
llvm-svn: 189486
|
| |
|
|
| |
llvm-svn: 189484
|
| |
|
|
|
|
|
|
| |
The usual default of "dmb ish" (inner-shareable) isn't even a valid instruction
on v6M or v7M (well, it does the same thing but software is strongly
discouraged from using it) so we should emit a full-system barrier there.
llvm-svn: 189483
|
| |
|
|
| |
llvm-svn: 189482
|
| |
|
|
|
|
|
| |
Clang is now generating cleaner IR, so this removes the old variants which
should be completely unused.
llvm-svn: 189481
|
| |
|
|
|
|
|
|
|
| |
The vqdmlal and vqdmlls instructions are really just a fused pair consisting of
a vqdmull.sN and a vqadd.sN. This adds patterns to LLVM so that we can switch
Clang's CodeGen over to generating these instead of the special vqdmlal
intrinsics.
llvm-svn: 189480
|
| |
|
|
| |
llvm-svn: 189479
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
These intrinsics are legalized to V(ALL|ANY)_(NON)?ZERO nodes,
are matched as SN?Z_[BHWDV]_PSEUDO pseudo's, and emitted as
a branch/mov sequence to evaluate to 0 or 1.
Note: The resulting code is sub-optimal since it doesnt seem to be possible
to feed the result of an intrinsic directly into a brcond. At the moment
it uses (SETCC (VALL_ZERO $ws), 0, SETEQ) and similar which unnecessarily
evaluates the boolean twice.
llvm-svn: 189478
|
| |
|
|
|
|
|
| |
- factorize unistd.h and stdbool.h in lldb-types.h.
- Add <functional> and <string> where required.
llvm-svn: 189477
|
| |
|
|
| |
llvm-svn: 189476
|
| |
|
|
| |
llvm-svn: 189475
|
| |
|
|
| |
llvm-svn: 189474
|
| |
|
|
| |
llvm-svn: 189473
|
| |
|
|
| |
llvm-svn: 189472
|
| |
|
|
| |
llvm-svn: 189471
|
| |
|
|
|
|
| |
The change was taken from a patch by Virgile Bello.
llvm-svn: 189470
|
| |
|
|
|
|
|
|
|
| |
For now just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.
llvm-svn: 189469
|
| |
|
|
|
|
|
|
| |
The MSA control registers have been added as reserved registers,
and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered
into these nodes.
llvm-svn: 189468
|
| |
|
|
|
|
| |
ftrunc_[su], hadd_[su], hsub_[su], sr[al]r, sr[al]ri
llvm-svn: 189467
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two changes:
* Don't add an extra penalty on breaking the same token multiple times.
Generally, we should prefer not to break, but once we break, the
normal line breaking penalties apply.
* Slightly increase the penalty for breaking comments. In general, the
author has put some thought into how to break the comment and we
should not overwrite this unnecessarily.
With a 40-column column limit, formatting
aaaaaa("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa");
Leads to:
Before:
aaaaaa(
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa "
"aaaaaaaaaaaaaaaa");
After:
aaaaaa("aaaaaaaaaaaaaaaa "
"aaaaaaaaaaaaaaaa "
"aaaaaaaaaaaaaaaa");
llvm-svn: 189466
|
| |
|
|
|
|
| |
Adds a comment to the start of each test summarizing the area the test covers.
llvm-svn: 189465
|
| |
|
|
| |
llvm-svn: 189464
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
These operations "vector add high-half narrow" actually correspond to the
sequence:
%sum = add <4 x i32> %lhs, %rhs
%high = lshr <4 x i32> %sum, <i32 16, i32 16, i32 16, i32 16>
%res = trunc <4 x i32> %high to <4 x i16>
Now that LLVM can spot this, Clang should emit the corresponding LLVM IR.
llvm-svn: 189463
|
| |
|
|
|
|
|
|
|
|
|
| |
The NEON intrinsics vqdmlal and vqdmlsl are really just combinations of a
saturating-doubling-multiply (vqdmull) and a saturating add/sub, so now that
LLVM can spot those patterns Clang should emit them instead of specialised
intrinsics.
Feature already tested by existing ARM NEON intrinsics tests.
llvm-svn: 189462
|
| |
|
|
| |
llvm-svn: 189461
|
| |
|
|
|
|
|
|
|
| |
The code leading to a segfault was:
#pragma omp threadprivate(y)), // long comment leading to a line break
This fixes llvm.org/PR16513.
llvm-svn: 189460
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If escaped newlines are aligned right
(FormatStyle.AlignEscapedNewlinesLeft == false), and a line contained
too many characters to fit into the column limit, this would result in
a (virtually) endless loop creating a negative number of spaces.
Instead, allow the escaped newlines to be pushed past the column limit
in this case.
This fixes llvm.org/PR16515.
llvm-svn: 189459
|
| |
|
|
|
|
| |
This uses the infrastructure added for memcpy and memmove in r189331.
llvm-svn: 189458
|
| |
|
|
|
|
| |
stack-use-after-return.cc; add a test for UAR mode in asan_noinst_test
llvm-svn: 189457
|
| |
|
|
| |
llvm-svn: 189456
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
#if __has_include( <strstream>)
#include <strstream>
#endif
After:
#if __has_include(<strstream>)
#include <strstream>
#endif
This fixes llvm.org/PR16516.
llvm-svn: 189455
|
| |
|
|
| |
llvm-svn: 189454
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In
@implementation ObjcClass
- (void)method;
{
}
@end
the ObjC compiler seems to accept the superfluous comma after "method",
but clang-format used to assert on the subsequent "{".
This fixes llvm.org/PR16604.
llvm-svn: 189453
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
-fno-exceptions does not implicitly attach a nothrow specifier to every operator
new. Even in this mode, non-nothrow new must not return a null pointer. Failure
to allocate memory can be signalled by other means, or just by killing the
program. This behaviour is consistent with the compiler - even with
-fno-exceptions, the generated code never tests for null (and would segfault if
the opeator actually happened to return null).
Reviewers: jordan_rose
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1528
llvm-svn: 189452
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
std::this_thread::sleep_for(std::chrono::nanoseconds{
std::chrono::seconds { 1 }
} /
5);
After:
std::this_thread::sleep_for(
std::chrono::nanoseconds{ std::chrono::seconds{ 1 } } / 5);
This fixes llvm.org/PR16554.
llvm-svn: 189451
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
SomeLoooooooooooooooooooooooooogType operator>
>(const SomeLooooooooooooooooooooooooogType &other);
SomeLoooooooooooooooooooooooooogType // break
operator>>(const SomeLooooooooooooooooooooooooogType &other);
After:
SomeLoooooooooooooooooooooooooogType
operator>>(const SomeLooooooooooooooooooooooooogType &other);
SomeLoooooooooooooooooooooooooogType // break
operator>>(const SomeLooooooooooooooooooooooooogType &other);
This fixes llvm.org/PR16328.
llvm-svn: 189450
|
| |
|
|
|
|
|
|
|
|
| |
Before:
static constexpr bool Bar = decltype(bar()) ::value;
After:
static constexpr bool Bar = decltype(bar())::value;
llvm-svn: 189449
|
| |
|
|
| |
llvm-svn: 189448
|
| |
|
|
|
|
| |
This is breaking numerous Clang tests on the buildbot.
llvm-svn: 189447
|
| |
|
|
|
|
| |
available for a while.
llvm-svn: 189446
|