llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Fangrui Song (MaskRay) <details> <summary>Changes</summary> The spurious -Wunused-function warning issue for `target_version` #<!-- -->80227 also applied to `__attribute__((target(...)))` based FMV. #<!-- -->81167 removed warnings for all `target`-based FMV. This patch restores the warnings for `__attribute__((target("default")))`. --- Full diff: https://github.com/llvm/llvm-project/pull/81302.diff 2 Files Affected: - (modified) clang/lib/AST/Decl.cpp (+5-1) - (added) clang/test/SemaCXX/attr-target-mv-warn-unused.cpp (+16) ``````````diff diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index e281f2d8874a7..5d6bb72a208a1 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -3538,7 +3538,11 @@ bool FunctionDecl::isTargetMultiVersion() const { } bool FunctionDecl::isTargetMultiVersionDefault() const { - return isMultiVersion() && hasAttr<TargetVersionAttr>() && + if (!isMultiVersion()) + return false; + if (hasAttr<TargetAttr>()) + return getAttr<TargetAttr>()->isDefaultVersion(); + return hasAttr<TargetVersionAttr>() && getAttr<TargetVersionAttr>()->isDefaultVersion(); } diff --git a/clang/test/SemaCXX/attr-target-mv-warn-unused.cpp b/clang/test/SemaCXX/attr-target-mv-warn-unused.cpp new file mode 100644 index 0000000000000..1901589ef732f --- /dev/null +++ b/clang/test/SemaCXX/attr-target-mv-warn-unused.cpp @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -verify -Wunused %s + +__attribute__((target("sse3"))) +static int not_used_fmv() { return 1; } +__attribute__((target("avx2"))) +static int not_used_fmv() { return 2; } +__attribute__((target("default"))) +static int not_used_fmv() { return 0; } // expected-warning {{unused function 'not_used_fmv'}} + +__attribute__((target("sse3"))) +static int definitely_used_fmv() { return 1; } +__attribute__((target("avx2"))) +static int definitely_used_fmv() { return 2; } +__attribute__((target("default"))) +static int definitely_used_fmv() { return 0; } +int definite_user() { return definitely_used_fmv(); } `````````` </details> https://github.com/llvm/llvm-project/pull/81302 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits