It reduces the amount of emitted debug information: 1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram, DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only. 2) .debug_str contains only function names. 3) No debug data for types/namespaces/variables is emitted. 4) The data in .debug_line is enough to produce valid stack traces with function names and line numbers. Reviewed by Eric Christopher. llvm-svn: 156160
22 lines
503 B
C++
22 lines
503 B
C++
// RUN: %clang_cc1 %s -O0 -gline-tables-only -S -emit-llvm -o - | FileCheck %s
|
|
// Checks that clang with "-gline-tables-only" doesn't emit debug info
|
|
// for variables and types.
|
|
|
|
// CHECK-NOT: DW_TAG_namespace
|
|
namespace NS {
|
|
// CHECK-NOT: DW_TAG_class_type
|
|
// CHECK-NOT: DW_TAG_friend
|
|
class C { friend class D; };
|
|
class D {};
|
|
// CHECK-NOT: DW_TAG_inheritance
|
|
class E : public C {
|
|
// CHECK-NOT: DW_TAG_reference type
|
|
void x(const D& d);
|
|
};
|
|
}
|
|
|
|
// CHECK-NOT: DW_TAG_variable
|
|
NS::C c;
|
|
NS::D d;
|
|
NS::E e;
|