| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
This fixes a bug in the DWARF backend.
llvm-svn: 285826
|
| |
|
|
|
|
|
|
|
| |
This commit simplifies and clarifies the test code
that was added in r285289.
Suggested by David Blaikie.
llvm-svn: 285825
|
| |
|
|
|
|
|
| |
So patch just defines an alias for -Txxx=YYY forms,
this is consistent with ld and should fix PR30814.
llvm-svn: 285824
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This commit improves the "must have C++ linkage" error diagnostics that are
emitted for C++ declarations like templates and literal operators by adding an
additional note that points to the appropriate extern "C" linkage specifier.
rdar://19021120
Differential Revision: https://reviews.llvm.org/D26189
llvm-svn: 285823
|
| |
|
|
|
|
| |
Avoids APInt construction and slower comparisons.
llvm-svn: 285822
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Only tests using %clang_cl_asan were using the dynamic CRT before this.
The unit tests and lit tests using %clangxx_asan were using the static
CRT. Many cross-platform tests fail with the dynamic CRT, so I had to
add win32-(static|dynamic)-asan lit features.
Also deletes some redundant tests in TestCases/Windows that started
failing with this switch.
llvm-svn: 285821
|
| |
|
|
|
|
|
|
|
|
| |
-shared-libasan is likely to be used as a link flag if the user is using
the GCC-style clang driver.
This logic is already tested in clang-cl tests, and the new flag to
exercise it will be covered by asan tests.
llvm-svn: 285820
|
| |
|
|
| |
llvm-svn: 285819
|
| |
|
|
| |
llvm-svn: 285818
|
| |
|
|
| |
llvm-svn: 285817
|
| |
|
|
|
|
| |
This will let us simplify the llvm side.
llvm-svn: 285816
|
| |
|
|
|
|
| |
As a consequence this move a bunch of error checking out of the constructor.
llvm-svn: 285815
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Remove this pass from addMachineSSAOptimization() and register it unconditionally in through addPreRegAlloc(). This pass is required for generating correct PIC calls.
Reviewers: sdardis
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26036
llvm-svn: 285814
|
| |
|
|
|
|
|
|
| |
GPRC and GPRC_NOR0 (or the 64bit equivalent) and not just the latter.
GPRC_NOR0 contains ZERO as alternative meaning of r0 and is therefore
not a true subclass of GPRC.
llvm-svn: 285813
|
| |
|
|
| |
llvm-svn: 285812
|
| |
|
|
|
|
| |
It is just the size of sections() which we were already calling.
llvm-svn: 285811
|
| |
|
|
|
|
| |
bumping up against that limit with MSVC 2015 in Win64 debug build mode.
llvm-svn: 285810
|
| |
|
|
|
|
|
|
| |
corresponds to the CERT C++ secure coding rule: https://www.securecoding.cert.org/confluence/display/cplusplus/MSC50-CPP.+Do+not+use+std%3A%3Arand%28%29+for+generating+pseudorandom+numbers
Patch by Benedek Kiss
llvm-svn: 285809
|
| |
|
|
| |
llvm-svn: 285808
|
| |
|
|
|
|
|
| |
Have it return a ErrorOr<Range> and delete section_begin and
section_end.
llvm-svn: 285807
|
| |
|
|
|
|
| |
labels. Silences an MSVC warning; NFC.
llvm-svn: 285806
|
| |
|
|
|
|
|
|
|
| |
While ARM is the only currently user we support this is a general
feature.
This avoids a second walk over the sections.
llvm-svn: 285805
|
| |
|
|
| |
llvm-svn: 285804
|
| |
|
|
| |
llvm-svn: 285803
|
| |
|
|
| |
llvm-svn: 285802
|
| |
|
|
| |
llvm-svn: 285801
|
| |
|
|
|
|
| |
SystemZAsmParser::parseOperand returns a bool, not an enum.
llvm-svn: 285800
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: aaron.ballman, mehdi_amini, dblaikie
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26206
llvm-svn: 285799
|
| |
|
|
| |
llvm-svn: 285798
|
| |
|
|
|
|
| |
Really NFC, as the code is #ifdefed out, but I did make sure it compiles if I enable it.
llvm-svn: 285797
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we have SHT_GNU_versym section, it is should be associated with symbol table
section. Usually (and in out implementation) it is .dynsym.
In case when .dynsym is absent (due to broken object for example),
lld crashes in parseVerdefs() when accesses null pointer:
Versym = reinterpret_cast<const Elf_Versym *>(this->ELFObj.base() +
VersymSec->sh_offset) +
this->Symtab->sh_info;
DIfferential revision: https://reviews.llvm.org/D25553
llvm-svn: 285796
|
| |
|
|
| |
llvm-svn: 285795
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While bootstrapping Clang with recent `gcc 6.2.0` I found a bug related to misleading indentation.
I believe, a pair of `{}` was forgotten, especially given the above similar piece of code:
```
if (!RDef || !HII->isPredicable(*RDef)) {
Done = coalesceRegisters(RD, RegisterRef(S1));
if (Done) {
UpdRegs.insert(RD.Reg);
UpdRegs.insert(S1.getReg());
}
}
```
Reviewers: kparzysz
Differential Revision: https://reviews.llvm.org/D26204
llvm-svn: 285794
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
It was detected that the reassociate pass could enter an inifite
loop when analysing dead code. Simply skipping to analyse basic
blocks that are dead avoids such problems (and as a side effect
we avoid spending time on optimising dead code).
The solution is using the same Reverse Post Order ordering of the
basic blocks when doing the optimisations, as when building the
precalculated rank map. A nice side-effect of this solution is
that we now know that we only try to do optimisations for blocks
with ranked instructions.
Fixes https://llvm.org/bugs/show_bug.cgi?id=30818
Reviewers: llvm-commits, davide, eli.friedman, mehdi_amini
Subscribers: dberlin
Differential Revision: https://reviews.llvm.org/D26154
llvm-svn: 285793
|
| |
|
|
| |
llvm-svn: 285792
|
| |
|
|
|
|
|
|
| |
Skip the tests that expect an exception be thrown and protect unreachable catch blocks.
Differential Revision: https://reviews.llvm.org/D26197
llvm-svn: 285791
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: This adds AVRISelLowering.cpp
Reviewers: arsenm, kparzysz
Subscribers: llvm-commits, modocache, japaric, wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25034
llvm-svn: 285790
|
| |
|
|
|
|
|
|
|
|
| |
At least with cmake 3.6.1, the default build type setting was having no
effect; the generated CMakeCache.txt still had an empty CMAKE_BUILD_TYPE.
Force the variable to be set to achieve the desired behavior.
Differential Revision: https://reviews.llvm.org/D26200
llvm-svn: 285789
|
| |
|
|
| |
llvm-svn: 285788
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We define a new trampoline that's a hybrid between the exit and entry
trampolines with the following properties:
- Saves all of the callee-saved registers according to the x86_64
calling conventions.
- Indicate to the log handler function being called that this is a
function exit event.
This fixes a bug that is a result of not saving enough of the register
states, and that the log handler is clobbering registers that would be
used by the function being tail-exited into manifesting as runtime
errors.
Reviewers: rSerge, echristo, majnemer
Subscribers: mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D26020
llvm-svn: 285787
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operators.
Previously __libcpp_is_constructible checked the validity of reference
construction using 'eat<To>(declval<From>())' but this doesn't consider
From's explicit conversion operators. This patch teaches __libcpp_is_constructible
how to handle these cases. To do this we need to check the validity
using 'static_cast<To>(declval<From>())'. Unfortunately static_cast allows
additional base-to-derived and lvalue-to-rvalue conversions, which have to be
checked for and manually rejected.
While implementing these changes I discovered that Clang incorrectly
rejects `static_cast<int&&>(declval<float&>())` even though
`int &&X(declval<float&>())` is well formed. In order to tolerate this bug
the `__eat<T>(...)` needs to be left in-place. Otherwise it could be replaced
entirely with the new static_cast implementation.
Thanks to Walter Brown for providing the test cases.
llvm-svn: 285786
|
| |
|
|
|
|
|
| |
We need to zero extend the byte in order to correctly shift it into a
64-bit value.
llvm-svn: 285785
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we added strings from DynamicSection::finalize().
It was a bit tricky because finalize() is supposed to fix the final
size of the section, but adding new strings would change the size of
.dynstr section. So there was a dependency between finalize functions
of .dynamic and .dynstr.
However, I noticed that we can elimiante the dependency by simply
add strings early; we don't have to do that in finalize() but can do
from DynamicSection's ctor.
This patch defines a new function, DynamicSection::addEntries, to
add .dynamic entries that doesn't depend on other sections.
llvm-svn: 285784
|
| |
|
|
|
|
|
|
|
|
|
| |
It was noticed this caused performance regressions and deadlocks. PR30768.
Reorder the code to make it clearer what is tested.
PPC now disables the use of std::call_once only with libstdc++ with
the reordering of the code, as was the original intent.
llvm-svn: 285782
|
| |
|
|
|
|
|
| |
We really shouldn't be sending events for SB API's, dunno when we started
doing that. We don't do it for other things. But first restore the status quo.
llvm-svn: 285781
|
| |
|
|
|
|
| |
This is the reverse_iterator analogue of getIterator().
llvm-svn: 285780
|
| |
|
|
|
|
|
| |
redeclaration in C++1z mode. We need the exception specification in order for
the function's type to be complete.
llvm-svn: 285779
|
| |
|
|
|
|
| |
Release notes checks order and consistent Clang-tidy readability-redundant-declaration description.
llvm-svn: 285778
|
| |
|
|
|
|
|
|
| |
Should unbreak ocaml binding tests.
Also added an llvm-dis test that checks for the same thing.
llvm-svn: 285777
|
| |
|
|
| |
llvm-svn: 285776
|