| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Fixes PR33569.
llvm-svn: 328462
|
|
|
|
|
|
|
| |
These <template-param>s refer to "artifical" <template-arg>s that don't appear
in the mangled name, so we just print them as "auto".
llvm-svn: 327690
|
|
|
|
|
|
| |
Thanks to Richard Smith for the post-commit review!
llvm-svn: 327228
|
|
|
|
| |
llvm-svn: 327227
|
|
|
|
| |
llvm-svn: 327226
|
|
|
|
|
|
| |
Thanks to Nico Weber for pointing this out!
llvm-svn: 326871
|
|
|
|
| |
llvm-svn: 326797
|
|
|
|
| |
llvm-svn: 326717
|
|
|
|
| |
llvm-svn: 325093
|
|
|
|
|
|
| |
Fixes PR33223.
llvm-svn: 325023
|
|
|
|
| |
llvm-svn: 324970
|
|
|
|
| |
llvm-svn: 324969
|
|
|
|
|
|
|
|
| |
substitution table.
Previously, both <extended-qualifier>s and <CV-qualifiers> got their own entries.
llvm-svn: 324968
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit cleans up the expression parser, using a new style:
- parse* functions now return Node pointers.
- The mangled name is now held in Db and accessed with look() and consume()
- LLVM coding style
This style is meant to avoid the 2 most common types of bugs in the
old demanger, namely misusing the Names stack (ie, calling back() on
empty) and going out of bounds on the mangled name. I also think it
makes the demangler a lot cleaner.
Differential revision: https://reviews.llvm.org/D41887
llvm-svn: 324111
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes how variadic templates are represented in the
demangler, in order to fix some longstanding bugs. Now instead of
expanding variadic templates during parsing, the expansion is done
during printing by reusing the unexpanded AST. This allows the
demangler to handle cases where multiple packs contribute to a single
production, and correctly handle "Dp" and "sp" productions, which
corrispond to pack expansions in type and expression contexts.
Differential revision: https://reviews.llvm.org/D41885
llvm-svn: 323906
|
|
|
|
|
|
|
|
|
| |
This patch updates libc++abi's HandleOutOfTreeLLVM.cmake to match
libc++'s -- and more importantly, to fix a bug where llvm-lit wasn't
found/created when libc++abi was built out-of-tree. This prevented
the test suite from running.
llvm-svn: 322768
|
|
|
|
|
|
|
|
| |
These are expected to be set by the shared lit scripts used from libc++.
Differential Revision: https://reviews.llvm.org/D40818
llvm-svn: 320445
|
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D40279
llvm-svn: 318874
|
|
|
|
| |
llvm-svn: 318765
|
|
|
|
| |
llvm-svn: 310530
|
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D36427
llvm-svn: 310525
|
|
|
|
| |
llvm-svn: 310226
|
|
|
|
| |
llvm-svn: 309650
|
|
|
|
| |
llvm-svn: 309520
|
|
|
|
|
|
|
|
|
|
|
|
| |
The demangler now demangles by producing an AST, then traverses that
AST to produce a demangled name. This is done for performance reasons,
now the demangler doesn't manuiplate std::strings, which hurt
performance and caused string operations to be inlined into the
parser, leading to large code size and stack usage.
Differential revision: https://reviews.llvm.org/D35159
llvm-svn: 309340
|
|
|
|
|
|
| |
Fixes an exponential parse found by oss-fuzz.
llvm-svn: 307941
|
|
|
|
| |
llvm-svn: 307230
|
|
|
|
|
|
| |
error message. No functional change.
llvm-svn: 305977
|
|
|
|
|
|
|
|
|
|
|
| |
The problem was that if base_name() was called from a context without
an actual base name, it could gulp up the entire string, which can
result in recursive duplications. The fix is to be more strict as to
what qualifies as a base name.
Differential revision: https://reviews.llvm.org/D33637
llvm-svn: 304113
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously if we parsed a constructor then we set parsed_ctor_dtor_cv
to true and never reseted it. This causes issue when a template argument
references a constructor (e.g. type of lambda defined inside a
constructor) as we will have the parsed_ctor_dtor_cv flag set what will
cause issues when parsing later arguments.
Reviewers: EricWF, compnerd
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D33385
llvm-svn: 303737
|
|
|
|
|
|
|
|
|
| |
The problem is that multiple types could have been parsed from parse_type(),
which the lamdba parameter parsing didn't handle.
Differential revision: https://reviews.llvm.org/D33368
llvm-svn: 303718
|
|
|
|
|
|
|
|
|
|
| |
Free the __cxa_exception object allocated with __cxa_allocate_exception.
This is an attempt to fix this asan bot:
http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-asan/builds/560
llvm-svn: 303194
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r276215 made a change to annotate _Unwind_Exception with attribute
"aligned" so that an exception object following field __cxa_exception
is sufficiently aligned. This fix hasn't been incorporated to unwind.h
on Darwin since it is an ABI breaking change.
Instead of annotating struct _Unwind_Exception with the attribute, this
commit annotates field unwindHeader of __cxa_exception. This ensures the
exception object is sufficiently aligned without breaking the ABI.
This recommits r302978 and r302981, which were reverted in r303016
because a libcxx test was failing on an AArch64 bot. I also modified the
libcxxabi test case to check the alignment of the pointer returned by
__cxa_allocate_exception rather than compiling the test with -O1 and
checking whether it segfaults.
rdar://problem/25364625
Differential Revision: https://reviews.llvm.org/D33030
llvm-svn: 303175
|
|
|
|
|
|
|
|
|
| |
Revert the two commits to understand why the following aarch64 bot is
failing.
http://lab.llvm.org:8011/builders/libcxx-libcxxabi-libunwind-aarch64-linux
llvm-svn: 303016
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r276215 made a change to annotate _Unwind_Exception with attribute
"aligned" so that an exception object following field __cxa_exception
is sufficiently aligned. This fix hasn't been incorporated to unwind.h
on Darwin since it is an ABI breaking change.
Instead of annotating struct _Unwind_Exception with the attribute, this
commit annotates field unwindHeader of __cxa_exception. This ensures the
exception object is sufficiently aligned without breaking the ABI.
This recommits r302763 with fixes to RUN lines in the test case.
rdar://problem/25364625
Differential Revision: https://reviews.llvm.org/D33030
llvm-svn: 302978
|
|
|
|
|
|
|
|
| |
This reverts commit r302763.
The commit caused bot failures.
llvm-svn: 302764
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r276215 made a change to annotate _Unwind_Exception with attribute
"aligned" so that an exception object following field __cxa_exception
is sufficiently aligned. This fix hasn't been incorporated to unwind.h
on Darwin since it is an ABI breaking change.
Instead of annotating struct _Unwind_Exception with the attribute, this
commit annotates field unwindHeader of __cxa_exception. This ensures the
exception object is sufficiently aligned without breaking the ABI.
rdar://problem/25364625
Differential Revision: https://reviews.llvm.org/D33030
llvm-svn: 302763
|
|
|
|
| |
llvm-svn: 302698
|
|
|
|
| |
llvm-svn: 302629
|
|
|
|
|
|
|
| |
I'm still not exactly sure why the test fails, but I suspect it's
a bug in GCC. More investigation needed.
llvm-svn: 302489
|
|
|
|
| |
llvm-svn: 300925
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test fails on ARM bare-metal targets because it assumes the Itanium ABI,
whereas EHABI requires the exception address to be 8-byte aligned.
I was a bit puzzled at first because this should've failed on the public
arm-linux builder too. I think the reason it passes there is because we don't
include libunwind headers in the include path when running the libcxxabi tests,
so the system unwind.h gets picked up.
Reviewers: rengolin, EricWF
Differential revision: https://reviews.llvm.org/D31178
llvm-svn: 299435
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: It's now completely empty, so we can remove it entirely.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D31502
llvm-svn: 299129
|
|
|
|
| |
llvm-svn: 296957
|
|
|
|
| |
llvm-svn: 296955
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In 32 bit builds on a 64 bit system `std::malloc` does not return correctly aligned memory. This leads to undefined behavior.
This patch switches to using `posix_memalign` to allocate correctly aligned memory instead.
Reviewers: mclow.lists, danalbert, jroelofs, compnerd
Reviewed By: compnerd
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25417
llvm-svn: 296952
|
|
|
|
| |
llvm-svn: 296940
|
|
|
|
|
|
|
|
| |
These tests embed calls to exceptions-related symbols from the abi library,
which are absent in the no-exceptions variant. The tests need to be marked
as unsupported for the no-exceptions configuration.
llvm-svn: 296344
|
|
|
|
|
|
| |
handlers
llvm-svn: 295411
|
|
|
|
| |
llvm-svn: 294671
|