| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This moves it up from IgnoreParenImpCasts to IgnoreParens, so that more
helpers ignore it. For most clients, this ensures that these helpers
behave the same with and without C++17 enabled, which is what appears to
introduce these new expression nodes.
Fixes PR39881
Reviewers: void, rsmith
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D55853
llvm-svn: 350068
|
|
|
|
|
|
|
| |
Fixes PR38783.
Differential Revision: https://reviews.llvm.org/D51784
llvm-svn: 341755
|
|
|
|
|
|
|
| |
It is not needed after LLVM r327734. Now it will be easier to copy-paste
IR symbol names from Clang.
llvm-svn: 327738
|
|
|
|
| |
llvm-svn: 223999
|
|
|
|
| |
llvm-svn: 210570
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples,
Itanium otherwise. It's no longer possible to do weird combinations.
To be able to run a test with a specific ABI without constraining it to a
specific triple, new substitutions are added to lit: %itanium_abi_triple and
%ms_abi_triple can be used to get the current target triple adjusted to the
desired ABI. For example, if the test suite is running with the i686-pc-win32
target, %itanium_abi_triple will expand to i686-pc-mingw32.
Differential Revision: http://llvm-reviews.chandlerc.com/D2545
llvm-svn: 199250
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Testing has revealed that large integral constants (i.e. > INT64_MAX)
are always mangled as-if they are negative, even in places where it
would not make sense for them to be negative (like non-type template
parameters of type unsigned long long).
To address this, we change the way we model number mangling: always
mangle as-if our number is an int64_t. This should result in correct
results when we have large unsigned numbers.
N.B. Bizarrely, things that are 32-bit displacements like vbptr offsets
are mangled as-if they are unsigned 32-bit numbers. This is a pretty
egregious waste of space, it would be a 4x savings if we could mangle it
like a signed 32-bit number. Instead, we explicitly cast these
displacements to uint32_t and let the mangler proceed.
llvm-svn: 196771
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
HandleTopLevelDecl on a templated function leads us to try and mangle
it.
Reviewers: rsmith
Reviewed By: rsmith
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1412
llvm-svn: 188536
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
It seems that __uuidof introduces a global extern "C" declaration of
type __s_GUID. However, our implementation of __uuidof does not provide
such a declaration and thus must open-code the mangling for __uuidof in
template parameters.
This allows us to codegen scoped COM pointers and other such things.
This fixes PR16836.
Depends on D1356.
Reviewers: rnk, cdavis5x, rsmith
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1357
llvm-svn: 188252
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Properly mangle declarations showing up in template arguments that are
reference parameters. Fun-fact: undname cannot handle these!
Reviewers: rnk, cdavis5x
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1356
llvm-svn: 188245
|
|
|
|
|
|
|
| |
Template-template arguments appear to be a rather simple encoding of the
template's templated tag type.
llvm-svn: 187751
|
|
|
|
|
|
| |
MSVC mangles nullptr template arguments identically to zero literals.
llvm-svn: 187741
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike Itanium, there is no code to indicate the beginning of a
parameter pack. I tested this with MSVC 2013, which is the only version
that implements variadic templates so far.
This is needed to compile APInt.cpp for the MS C++ ABI.
Reviewers: timurrrr
Differential Revision: http://llvm-reviews.chandlerc.com/D1077
llvm-svn: 185454
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the complexity of this patch is figuring out which types get the
qualifier and which don't. If we implement __ptr32/64, then we should
check the qualifier instead of assuming all pointers are 64-bit.
This fixes PR13792.
Patch by Warren Hunt!
llvm-svn: 181825
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes the following fixes:
- Implement 4 subtly different variants of qualifier mangling and use them
in what I believe are the right places.
- Fix handling of array types. Previously we were always decaying them,
which is wrong if the type appears as a template argument, pointee,
referent etc.
Fixes PR13182.
Differential Revision: http://llvm-reviews.chandlerc.com/D709
llvm-svn: 180250
|
|
|
|
|
|
| |
Credit goes to Timur Iskhodzhanov for finding the problem and solution.
llvm-svn: 179093
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: rjmccall
CC: timurrrr, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D554
llvm-svn: 177589
|
|
|
|
|
|
|
|
|
|
| |
Do this by making the mangleNumber(APSInt) overload look like
the int64_t version. (The latter should probably just delegate
to the former).
Test from Evgeny Eltsin!
llvm-svn: 167599
|
|
|
|
|
|
| |
Currently, it's ignored if the number of set bits isn't divisible by 4.
llvm-svn: 165116
|
|
|
|
|
|
| |
arguments in a class specialization.
llvm-svn: 159056
|
|
|
|
|
|
| |
for this. Reported by Timur Iskhodzhanov.
llvm-svn: 157583
|
|
|
|
|
|
| |
as zeroes. Now the digits are properly non-zero.
llvm-svn: 157552
|
|
the Microsoft Visual C++ ABI. Currently limited to type and integral
non-type arguments. Based on a patch by Timur Iskhodzhanov!
llvm-svn: 157524
|