diff options
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-class-optzns.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/debug-info-class-optzns.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-class-optzns.cpp b/clang/test/CodeGenCXX/debug-info-class-optzns.cpp new file mode 100644 index 00000000000..08f045659bc --- /dev/null +++ b/clang/test/CodeGenCXX/debug-info-class-optzns.cpp @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -triple x86_64-unknown_unknown -emit-llvm -debug-info-kind=limited %s -O1 -o - | FileCheck %s + +// Ensure class definitions are not emitted to debug info just because the +// vtable is emitted for optimization purposes (as available_externally). The +// class definition debug info should only go where the vtable is actually +// emitted into the object file. + +// CHECK: @_ZTV3foo = available_externally +// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "foo" +// CHECK-SAME: DIFlagFwdDecl + +struct foo { + virtual void f(); +}; + +foo f; |