[clang] [clang] Fix -fclang-abi-compat for clang 20 (PR #144109)
Mariya Podchishchaeva via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 13 09:15:47 PDT 2025
https://github.com/Fznamznon created https://github.com/llvm/llvm-project/pull/144109
The value was known already, but it was parsed as latest which is incorrect because we are already doing clang 21.
>From a48dd54fb4918a89e6a98f82860332ab59be6df6 Mon Sep 17 00:00:00 2001
From: "Podchishchaeva, Mariya" <mariya.podchishchaeva at intel.com>
Date: Fri, 13 Jun 2025 09:12:47 -0700
Subject: [PATCH] [clang] Fix -fclang-abi-compat for clang 20
The value was known already, but it was parsed as latest which is
incorrect because we are already doing clang 21.
---
clang/lib/Frontend/CompilerInvocation.cpp | 2 ++
clang/test/CodeGen/X86/avx-cxx-record.cpp | 2 ++
2 files changed, 4 insertions(+)
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 2c02719121c73..9c0890713dc06 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -4475,6 +4475,8 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
Opts.setClangABICompat(LangOptions::ClangABI::Ver18);
else if (Major <= 19)
Opts.setClangABICompat(LangOptions::ClangABI::Ver19);
+ else if (Major <= 20)
+ Opts.setClangABICompat(LangOptions::ClangABI::Ver20);
} else if (Ver != "latest") {
Diags.Report(diag::err_drv_invalid_value)
<< A->getAsString(Args) << A->getValue();
diff --git a/clang/test/CodeGen/X86/avx-cxx-record.cpp b/clang/test/CodeGen/X86/avx-cxx-record.cpp
index bcd9c361fda90..6ce6815a521a1 100644
--- a/clang/test/CodeGen/X86/avx-cxx-record.cpp
+++ b/clang/test/CodeGen/X86/avx-cxx-record.cpp
@@ -1,4 +1,5 @@
// RUN: %clang_cc1 %s -triple x86_64-unknown-linux-gnu -emit-llvm -O2 -target-cpu x86-64-v3 -o - | FileCheck %s
+// RUN: %clang_cc1 %s -triple x86_64-unknown-linux-gnu -emit-llvm -O2 -target-cpu x86-64-v3 -fclang-abi-compat=20 -o - | FileCheck --check-prefix CLANG-20 %s
using UInt64x2 = unsigned long long __attribute__((__vector_size__(16), may_alias));
@@ -11,6 +12,7 @@ struct XMM2 : XMM1<0>, XMM1<1> {
};
// CHECK: define{{.*}} @_Z3foov({{.*}} [[ARG:%.*]]){{.*}}
+// CLANG-20: define{{.*}} <4 x double> @_Z3foov()
// CHECK: entry:
// CHECK-NEXT: store {{.*}}, ptr [[ARG]]{{.*}}
// CHECK-NEXT: [[TMP1:%.*]] = getelementptr {{.*}}, ptr [[ARG]]{{.*}}
More information about the cfe-commits
mailing list