[clang] [Clang][SME] Detect always_inline used with mismatched streaming attributes (PR #77936)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 12 07:00:09 PST 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 124efcaa973306ce42633cea07ed3cf55d63afde bbc6c11cd3def5acbb2ba2f2ddc45df2c399f9d6 -- clang/test/CodeGen/aarch64-sme-func-attrs-inline-locally-streaming.c clang/test/CodeGen/aarch64-sme-func-attrs-inline-streaming.c clang/include/clang/Sema/Sema.h clang/lib/CodeGen/Targets/AArch64.cpp clang/lib/Sema/SemaChecking.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 0fed60103c..2ff1fcb01c 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -13803,13 +13803,12 @@ public:
FormatArgumentPassingKind ArgPassingKind;
};
-enum ArmStreamingType {
- ArmNonStreaming,
- ArmStreaming,
- ArmStreamingCompatible,
- ArmStreamingOrSVE2p1
-};
-
+ enum ArmStreamingType {
+ ArmNonStreaming,
+ ArmStreaming,
+ ArmStreamingCompatible,
+ ArmStreamingOrSVE2p1
+ };
static bool getFormatStringInfo(const FormatAttr *Format, bool IsCXXMember,
bool IsVariadic, FormatStringInfo *FSI);
diff --git a/clang/lib/CodeGen/Targets/AArch64.cpp b/clang/lib/CodeGen/Targets/AArch64.cpp
index ea3d5a9760..43555f577f 100644
--- a/clang/lib/CodeGen/Targets/AArch64.cpp
+++ b/clang/lib/CodeGen/Targets/AArch64.cpp
@@ -822,14 +822,18 @@ Address AArch64ABIInfo::EmitMSVAArg(CodeGenFunction &CGF, Address VAListAddr,
void AArch64TargetCodeGenInfo::checkFunctionCallABI(
CodeGenModule &CGM, SourceLocation CallLoc, const FunctionDecl *Caller,
const FunctionDecl *Callee, const CallArgList &Args) const {
- if (!Callee->hasAttr<AlwaysInlineAttr>())
- return;
+ if (!Callee->hasAttr<AlwaysInlineAttr>())
+ return;
- auto CalleeIsStreaming = Sema::getArmStreamingFnType(Callee) == Sema::ArmStreaming;
- auto CallerIsStreaming = Sema::getArmStreamingFnType(Caller) == Sema::ArmStreaming;
+ auto CalleeIsStreaming =
+ Sema::getArmStreamingFnType(Callee) == Sema::ArmStreaming;
+ auto CallerIsStreaming =
+ Sema::getArmStreamingFnType(Caller) == Sema::ArmStreaming;
- if (CalleeIsStreaming && !CallerIsStreaming)
- CGM.getDiags().Report(CallLoc, diag::err_function_alwaysinline_attribute_mismatch) << Caller->getDeclName() << Callee->getDeclName() << "streaming";
+ if (CalleeIsStreaming && !CallerIsStreaming)
+ CGM.getDiags().Report(CallLoc,
+ diag::err_function_alwaysinline_attribute_mismatch)
+ << Caller->getDeclName() << Callee->getDeclName() << "streaming";
}
std::unique_ptr<TargetCodeGenInfo>
``````````
</details>
https://github.com/llvm/llvm-project/pull/77936
More information about the cfe-commits
mailing list