mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-20 10:07:02 +00:00
[Sema][SVE] Properly match builtin ID when using aux target
Differential Revision: https://reviews.llvm.org/D104539
This commit is contained in:
parent
7f20e6ae32
commit
325b670794
@ -5163,7 +5163,10 @@ static bool ArmCdeAliasValid(unsigned BuiltinID, StringRef AliasName) {
|
||||
return ArmBuiltinAliasValid(BuiltinID, AliasName, Map, IntrinNames);
|
||||
}
|
||||
|
||||
static bool ArmSveAliasValid(unsigned BuiltinID, StringRef AliasName) {
|
||||
static bool ArmSveAliasValid(ASTContext &Context, unsigned BuiltinID,
|
||||
StringRef AliasName) {
|
||||
if (Context.BuiltinInfo.isAuxBuiltinID(BuiltinID))
|
||||
BuiltinID = Context.BuiltinInfo.getAuxBuiltinID(BuiltinID);
|
||||
return BuiltinID >= AArch64::FirstSVEBuiltin &&
|
||||
BuiltinID <= AArch64::LastSVEBuiltin;
|
||||
}
|
||||
@ -5180,7 +5183,7 @@ static void handleArmBuiltinAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
|
||||
StringRef AliasName = cast<FunctionDecl>(D)->getIdentifier()->getName();
|
||||
|
||||
bool IsAArch64 = S.Context.getTargetInfo().getTriple().isAArch64();
|
||||
if ((IsAArch64 && !ArmSveAliasValid(BuiltinID, AliasName)) ||
|
||||
if ((IsAArch64 && !ArmSveAliasValid(S.Context, BuiltinID, AliasName)) ||
|
||||
(!IsAArch64 && !ArmMveAliasValid(BuiltinID, AliasName) &&
|
||||
!ArmCdeAliasValid(BuiltinID, AliasName))) {
|
||||
S.Diag(AL.getLoc(), diag::err_attribute_arm_builtin_alias);
|
||||
@ -5210,7 +5213,7 @@ static void handleBuiltinAliasAttr(Sema &S, Decl *D,
|
||||
bool IsAArch64 = S.Context.getTargetInfo().getTriple().isAArch64();
|
||||
bool IsARM = S.Context.getTargetInfo().getTriple().isARM();
|
||||
bool IsRISCV = S.Context.getTargetInfo().getTriple().isRISCV();
|
||||
if ((IsAArch64 && !ArmSveAliasValid(BuiltinID, AliasName)) ||
|
||||
if ((IsAArch64 && !ArmSveAliasValid(S.Context, BuiltinID, AliasName)) ||
|
||||
(IsARM && !ArmMveAliasValid(BuiltinID, AliasName) &&
|
||||
!ArmCdeAliasValid(BuiltinID, AliasName)) ||
|
||||
(IsRISCV && !RISCVAliasValid(BuiltinID, AliasName)) ||
|
||||
|
5
clang/test/Sema/aarch64-sve-alias-attribute.c
Normal file
5
clang/test/Sema/aarch64-sve-alias-attribute.c
Normal file
@ -0,0 +1,5 @@
|
||||
// RUN: %clang_cc1 -triple aarch64-unknown-linux-gnu -aux-triple aarch64-none-unknown-eabi -target-feature +sve -fopenmp-is-device -fopenmp -verify -fsyntax-only %s
|
||||
|
||||
static __inline__ __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_m))) // expected-no-diagnostics
|
||||
void
|
||||
nop(void);
|
Loading…
x
Reference in New Issue
Block a user