[clang] [CodeGen] Disable exact dynamic_cast for duplicable vtables (PR #205929)
Oliver Hunt via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 26 18:55:41 PDT 2026
================
@@ -1662,12 +1662,13 @@ def : Flag<["-"], "shared-libasan">, Alias<shared_libsan>;
def : Flag<["-"], "static-libasan">, Alias<static_libsan>;
def fasm : Flag<["-"], "fasm">, Group<f_Group>;
-defm assume_unique_vtables : BoolFOption<"assume-unique-vtables",
- CodeGenOpts<"AssumeUniqueVTables">, DefaultTrue,
- PosFlag<SetTrue>,
- NegFlag<SetFalse, [], [ClangOption, CC1Option],
- "Disable optimizations based on vtable pointer identity">,
- BothFlags<[], [ClangOption, CLOption]>>;
+def fassume_unique_vtables : Flag<["-"], "fassume-unique-vtables">,
+ Group<f_Group>, Visibility<[ClangOption, CC1Option, CLOption]>,
+ HelpText<"Assume each polymorphic class has a single vtable with a unique "
+ "address, enabling optimizations based on vtable pointer identity">;
+def fno_assume_unique_vtables : Flag<["-"], "fno-assume-unique-vtables">,
+ Group<f_Group>, Visibility<[ClangOption, CC1Option, CLOption]>,
+ HelpText<"Disable optimizations based on vtable pointer identity">;
----------------
ojhunt wrote:
It's almost worth making this match the actual options: never, always, vtables-with-key-function -- do you have an opinion? (e.g it would be the fassume-unique-vtables={no, yes, key function flag})
https://github.com/llvm/llvm-project/pull/205929
More information about the cfe-commits
mailing list