llvm-project/libcxx
David Blaikie 8bf1244538 DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes
There's a nuanced check about when to use suffixes on these integer
non-type-template-parameters, but when rebuilding names for
-gsimple-template-names there isn't enough data in the DWARF to
determine when to use suffixes or not. So turn on suffixes always to
make it easy to match up names in llvm-dwarfdump --verify.

I /think/ if we correctly modelled auto non-type-template parameters
maybe we could put suffixes only on those. But there's also some logic
in Clang that puts the suffixes on overloaded functions - at least
that's what the parameter says (see D77598 and printTemplateArguments
"TemplOverloaded" parameter) - but I think maybe it's for anything that
/can/ be overloaded, not necessarily only the things that are overloaded
(the argument value is hardcoded at the various callsites, doesn't seem
to depend on overload resolution/searching for overloaded functions). So
maybe with "auto" modeled more accurately, and differentiating between
function templates (always using type suffixes there) and class/variable
templates (only using the suffix for "auto" types) we could correctly
use integer type suffixes only in the minimal set of cases.

But that seems all too much fuss, so let's just put integer type
suffixes everywhere always in the debug info of integer non-type
template parameters in template names.

(more context:
* https://reviews.llvm.org/D77598#inline-1057607
* https://groups.google.com/g/llvm-dev/c/ekLMllbLIZg/m/-dhJ0hO1AAAJ )

Differential Revision: https://reviews.llvm.org/D111477
2021-11-01 17:08:26 -07:00
..
benchmarks Ensure newlines at the end of files (NFC) 2021-10-23 08:45:29 -07:00
cmake [CMake] Cache the compiler-rt library search results 2021-10-27 17:53:03 -07:00
docs [libc++][format] Mark LWG-issues as complete. 2021-10-30 12:52:30 +02:00
include [libc++] Refactor num_put::do_put to reduce duplication 2021-11-01 10:05:10 -04:00
lib [libcxx] Make allocator<T>:allocate throw bad_array_new_length 2021-10-18 19:12:42 +01:00
src [CMake] Cache the compiler-rt library search results 2021-10-27 17:53:03 -07:00
test DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes 2021-11-01 17:08:26 -07:00
utils [libc++] Update the CI Docker image to Focal 2021-10-28 13:21:09 -04:00
.clang-format [libc++] Update clang-format to C++20. 2021-10-30 12:50:57 +02:00
.gitignore [libcxx] Fix .gitignore to not exclude test directories 2020-03-25 17:52:23 -07:00
CMakeLists.txt [CMake] Cache the compiler-rt library search results 2021-10-27 17:53:03 -07:00
CREDITS.TXT [NFC] Add contributor name to CREDITS.TXT 2021-09-29 14:48:32 -04:00
LICENSE.TXT
TODO.TXT [libc++] Disallow volatile types in std::allocator 2021-09-22 11:47:38 -04:00
appveyor-reqs-install.cmd
appveyor.yml