summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp
Commit message (Collapse)AuthorAgeFilesLines
* PR21909: Don't try (and crash) to generate debug info for explicit ↵David Blaikie2014-12-161-0/+8
| | | | | | instantiations of explicit specializations. llvm-svn: 224394
* DebugInfo: Include default template arguments in template type namesDavid Blaikie2014-04-021-0/+7
| | | | | | | | | | | | | | | This was committed 4 years ago in 108916 with insufficient testing to explain why the "getTypeAsWritten" case was appropriate. Experience says that it isn't - the presence or absence of an explicit instantiation declaration was causing this code to generate either i<int> or i<int, int>. That didn't seem to be a useful distinction, and omitting the template arguments was destructive to debuggers being able to associate the two types across translation units or across compilers (GCC, reasonably, never omitted the arguments). llvm-svn: 205447
* Add a test case for r202888, which boiled down to -gline-tables-onlyReid Kleckner2014-03-041-1/+7
| | | | | | | clang-cl defaults to -gline-tables-only, because that's the only CodeView debug info that LLVM knows how to emit. llvm-svn: 202891
* Give %itanium_abi_triple to the test to appease targeting msvc.NAKAMURA Takumi2014-03-041-1/+1
| | | | llvm-svn: 202803
* DebugInfo: Make test (introduced in r202769) resilient to platforms that ↵David Blaikie2014-03-041-1/+1
| | | | | | default to -fstandalone-debug llvm-svn: 202780
* DebugInfo: Improvements/corrections to conservative emission of types in ↵David Blaikie2014-03-041-6/+14
| | | | | | | | | explicit template instantiation declarations * detect out of line definitions correctly * detect member function explicit specializations correctly llvm-svn: 202779
* Add triple to test. On Mac OS it was failing to generate debug info which ↵Pete Cooper2014-03-041-1/+1
| | | | | | matched the check lines llvm-svn: 202777
* DebugInfo: Emit only the declaration of a class template that has an ↵David Blaikie2014-03-031-0/+72
explicit instantiation declaration (& always emit such a type when there's an explicit instantiation definition) We should only have this optimization fire when the explicit instantiation definition would cause at least one member function to be emitted, thus ensuring that even a compiler not performing this optimization would still emit the full type information elsewhere. But we should also pessimize output still by always emitting the definition when the explicit instantiation definition appears so that at some point in the future we can depend on that information even when no code had to be emitted in that TU. (this shouldn't happen very often, since people mostly use explicit spec decl/defs to reduce code size - but perhaps one day they could use it to explicitly reduce debug info size too) This was worth about 2% for Clang and LLVM - so not a huge win, but a win. It looks really great for simple STL programs (include <string> and just declare a string - 14k -> 1.4k of .dwo) llvm-svn: 202769
OpenPOWER on IntegriCloud