Skip to content

Commit fabc88b

Browse files
committed
fixup! add DocBrief
1 parent 3bff525 commit fabc88b

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4775,7 +4775,10 @@ defm structor_decl_linkage_names
47754775
"Attach linkage names to C++ constructor/destructor "
47764776
"declarations in DWARF."
47774777
"Implies -g.">,
4778-
BothFlags<[], [ClangOption, CLOption, CC1Option]>>;
4778+
BothFlags<[], [ClangOption, CLOption, CC1Option]>>,
4779+
DocBrief<[{On some ABIs (e.g., Itanium), constructors and destructors may have multiple variants. Historically, when generating DWARF, Clang did not attach ``DW_AT_linkage_name``s to structor DIEs because there were multiple possible manglings (depending on the structor variant) that could be used. With ``-gstructor-decl-linkage-names``, for ABIs with structor variants, we attach a "unified" mangled name to structor declarations DIEs which debuggers can use to look up all the definitions for a structor declaration. E.g., a "unified" mangled name ``_ZN3FooC4Ev`` may have multiple definitions associated with it such as ``_ZN3FooC1Ev`` and ``_ZN3FooC2Ev``.
4780+
4781+
Enabling this flag results in a better interactive debugging experience (both GDB and LLDB have support for understanding these "unified" linkage names). However, it comes with a significant increase in debug-info size (particularly the `.debug_str` section). As an escape hatch, users can disable this feature using ``-gno-structor-decl-linkage-names``.}]>;
47794782
defm key_instructions : BoolGOption<"key-instructions",
47804783
CodeGenOpts<"DebugKeyInstructions">, DefaultFalse,
47814784
NegFlag<SetFalse>, PosFlag<SetTrue, [], [],

0 commit comments

Comments
 (0)