summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/debug-info-static-member.cpp
Commit message (Collapse)AuthorAgeFilesLines
* IR: Make metadata typeless in assembly, clang sideDuncan P. N. Exon Smith2014-12-151-13/+13
| | | | | | Match LLVM changes from r224257. llvm-svn: 224259
* DebugInfo: Fix another case of r222377 when we do have a definition of the ↵David Blaikie2014-11-211-0/+17
| | | | | | variable, but we might not be emitting it (such as templates) llvm-svn: 222485
* DebugInfo: Don't emit a 'global variable' when a static member declaration ↵David Blaikie2014-11-191-0/+18
| | | | | | | | | is referenced without a definition, just ensure the enclosing class (with the static member declaration) is emitted. Addresses PR21511 by emitting appropriate metadata rather than faux-global definitions for a variable that doesn't have a definition. llvm-svn: 222377
* DebugInfo: Correctly describe the lexical decl context of static member ↵David Blaikie2014-10-231-3/+13
| | | | | | | | | | | | | | | | | | variable definitions. The previous IR representation used the non-lexical decl context, which placed the definitions in the same scope as the declarations (ie: within the class) - this was hidden by the fact that LLVM currently doesn't respect the context of global variable definitions at all, and always puts them at the top level (as direct children of the compile_unit). Having the correct lexical scope improves source fidelity and simplify backend global variable emission (with changes coming shortly). Doing something similar for non-member global variables would help simplify/cleanup things further (see FIXME in the commit) and provide similar source fidelity benefits to the final debug info. llvm-svn: 220488
* DebugInfo: Follow up to r219736, also test/demonstrate that we emit the ↵David Blaikie2014-10-161-2/+4
| | | | | | constant value in this case as well. llvm-svn: 219943
* DebugInfo: Lazily built static member variable declarations should use the ↵David Blaikie2014-10-141-0/+10
| | | | | | | | | | | | | | canonical declaration for line/file information. When lazily constructing static member variable declarations (when the vtable optimization fires and the definition of the type is omitted (or built later, lazily), but the out of line definition of the static member is provided and must be described in debug info) ensure we use the canonical declaration when computing the file, line, etc for that declaration (rather than the definition, which is also a declaration, but not the canonical one). llvm-svn: 219736
* Revert "Revert "DI: LLVM schema change: fold constants into string""Duncan P. N. Exon Smith2014-10-031-9/+9
| | | | | | | | | | | | | | This reverts commit r218917, effectively reapplying r218913. Original commit message follows. -- Update debug info testcases for an LLVM metadata schema change to fold metadata constant operands into a single `MDString`. Part of PR17891. llvm-svn: 219011
* Revert "DI: LLVM schema change: fold constants into string"Duncan P. N. Exon Smith2014-10-021-9/+9
| | | | | | This reverts commit r218913 while I investigate some bots. llvm-svn: 218917
* DI: LLVM schema change: fold constants into stringDuncan P. N. Exon Smith2014-10-021-9/+9
| | | | | | | | | Update debug info testcases for an LLVM metadata schema change to fold metadata constant operands into a single `MDString`. Part of PR17891. llvm-svn: 218913
* Debug info: Only emit C++ accessibility specifiers when they are divergingAdrian Prantl2014-08-291-5/+5
| | | | | | | | from the default for the containing type. rdar://problem/18154959 llvm-svn: 216800
* Don't pass -O0 to clang_cc1, it is the default.Rafael Espindola2013-09-041-1/+1
| | | | llvm-svn: 189910
* Debug Info: generate a unique identifier for C++ struct, class, union, and enum.Manman Ren2013-08-291-2/+4
| | | | | | | | | | | | | | | | We use CXX mangler to generate unique identifier for external C++ struct, union, class and enum. Types with unique identifier are added to retained types by DIBuilder. Testing cases are updated to reflect the unique identifier generated for types. The order of MDNodes is changed because of retained types and testing cases are updated accordingly. Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since uuid is not yet handled in Itanium mangler. And it will check for the error message. llvm-svn: 189622
* Debug Info: this reverts commit r189600.Manman Ren2013-08-291-4/+2
| | | | | | | | We had further discussions on how to retain types, whether to do it in front end or in DIBuilder. And we agree to do it in DIBuilder so front ends generating unique identifier do not need to worry about retaining them. llvm-svn: 189609
* Debug Info: generate a unique identifier for C++ struct, class, union, and enum.Manman Ren2013-08-291-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | We use CXX mangler to generate unique identifier for external C++ struct, union, class and enum. Types with unique identifier are added to RetainedTypes to make sure they are treated as used even when all uses are replaced with the identifiers. A single type can be added to RetainedTypes multiple times. For example, both createForwardDecl and createLimitedType can add the same type to RetainedTypes. A set is used to avoid duplication when updating AllRetainTypes in DIBuilder. Testing cases are updated to reflect the unique identifier generated for types. The order of MDNodes is changed because of retained types and testing cases are updated accordingly. Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since uuid is not yet handled in Itanium mangler. We choose to update RetainedTypes in clang, then at finalize(), we update AllRetainTypes in DIBuilder. The other choice is to update AllRetainTypes in DIBuilder when creating a DICompositeType with unique identifier. This option requires using ValueHandle for AllRetainTypes in DIBuilder since the created DICompositeType can be modified later on by setContainingType etc. llvm-svn: 189600
* PR16927: Don't assert (or, previously, skip) static data members of ↵David Blaikie2013-08-171-1/+5
| | | | | | enumeration type llvm-svn: 188612
* clang/test/CodeGenCXX/debug-info-static-member.cpp: Appease targetting msvc ↵NAKAMURA Takumi2013-01-251-1/+1
| | | | | | | | | | | | | to add explicit -target x86_64-unknown-unknown. with -target i686-win32, you will see; debug-info-static-member.cpp:11:22: error: in-class initializer for static data member of type 'const float' requires 'constexpr' specifier [-Wstatic-float-init] const static float const_b = 3.14; ^ ~~~~ constexpr llvm-svn: 173418
* The last of PR14471: Debug info support for inline in-class initializer for ↵David Blaikie2013-01-201-4/+4
| | | | | | float static members llvm-svn: 172942
* Add testcase missed yesterday. Patch from Paul Robinson.Eric Christopher2013-01-161-0/+41
llvm-svn: 172648
OpenPOWER on IntegriCloud