diff options
author | tcwzxx <tcwzxx@gmail.com> | 2024-09-29 11:43:28 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-29 11:43:28 +0800 |
commit | 7883b028b42df7b763cae20d8ff56233bee4beb6 (patch) | |
tree | 93f9a2607f002c73e3c755620eebf128f61023e3 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | b0fc36dfa42c420d38a9422e2c3092ca3ae84075 (diff) | |
download | llvm-7883b028b42df7b763cae20d8ff56233bee4beb6.zip llvm-7883b028b42df7b763cae20d8ff56233bee4beb6.tar.gz llvm-7883b028b42df7b763cae20d8ff56233bee4beb6.tar.bz2 |
[ItaniumMangle] Add substitutions for record types when mangling vtables (#109970)
Fix #108015
The `mangleNameOrStandardSubstitution` function does not add the RD type
into the substitution, which causes the mangling of the \<base type\> to
be incorrect.
Rename `mangleNameOrStandardSubstitution` to `mangleCXXRecordDecl` and add `Record` as a substitution
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 6c09843..a0291cc 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -3830,6 +3830,9 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts, case LangOptions::ClangABI::Ver18: GenerateArg(Consumer, OPT_fclang_abi_compat_EQ, "18.0"); break; + case LangOptions::ClangABI::Ver19: + GenerateArg(Consumer, OPT_fclang_abi_compat_EQ, "19.0"); + break; case LangOptions::ClangABI::Latest: break; } @@ -4372,6 +4375,8 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, Opts.setClangABICompat(LangOptions::ClangABI::Ver17); else if (Major <= 18) Opts.setClangABICompat(LangOptions::ClangABI::Ver18); + else if (Major <= 19) + Opts.setClangABICompat(LangOptions::ClangABI::Ver19); } else if (Ver != "latest") { Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << A->getValue(); |