This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG6106a6d7fe48: [RISCV] Update error message to not call 'RV32' and 'RV64' an extension. (authored by craig.topper).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133444/new/ https://reviews.llvm.org/D133444 Files: clang/include/clang/Basic/DiagnosticSemaKinds.td clang/lib/Sema/SemaChecking.cpp clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c Index: clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c =================================================================== --- clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c +++ clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c @@ -3,10 +3,10 @@ int zip(int rs1) { - return __builtin_riscv_zip_32(rs1); // expected-error {{builtin requires at least one of the following extensions to be enabled: 'RV32'}} + return __builtin_riscv_zip_32(rs1); // expected-error {{builtin requires: 'RV32'}} } int unzip(int rs1) { - return __builtin_riscv_unzip_32(rs1); // expected-error {{builtin requires at least one of the following extensions to be enabled: 'RV32'}} + return __builtin_riscv_unzip_32(rs1); // expected-error {{builtin requires: 'RV32'}} } Index: clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c =================================================================== --- clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c +++ clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c @@ -2,5 +2,5 @@ // RUN: %clang_cc1 -triple riscv32 -target-feature +zbb -verify %s -o - int orc_b_64(int a) { - return __builtin_riscv_orc_b_64(a); // expected-error {{builtin requires at least one of the following extensions to be enabled: 'RV64'}} + return __builtin_riscv_orc_b_64(a); // expected-error {{builtin requires: 'RV64'}} } Index: clang/lib/Sema/SemaChecking.cpp =================================================================== --- clang/lib/Sema/SemaChecking.cpp +++ clang/lib/Sema/SemaChecking.cpp @@ -4369,13 +4369,20 @@ if (llvm::none_of(ReqOpFeatures, [&TI](StringRef OF) { return TI.hasFeature(OF); })) { std::string FeatureStrs; + bool IsExtension = true; for (StringRef OF : ReqOpFeatures) { // If the feature is 64bit, alter the string so it will print better in // the diagnostic. - if (OF == "64bit") + if (OF == "64bit") { + assert(ReqOpFeatures.size() == 1 && "Expected '64bit' to be alone"); OF = "RV64"; - if (OF == "32bit") + IsExtension = false; + } + if (OF == "32bit") { + assert(ReqOpFeatures.size() == 1 && "Expected '32bit' to be alone"); OF = "RV32"; + IsExtension = false; + } // Convert features like "zbr" and "experimental-zbr" to "Zbr". OF.consume_front("experimental-"); @@ -4390,6 +4397,7 @@ // Error message FeatureMissing = true; Diag(TheCall->getBeginLoc(), diag::err_riscv_builtin_requires_extension) + << IsExtension << TheCall->getSourceRange() << StringRef(FeatureStrs); } } Index: clang/include/clang/Basic/DiagnosticSemaKinds.td =================================================================== --- clang/include/clang/Basic/DiagnosticSemaKinds.td +++ clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -11636,7 +11636,7 @@ // RISC-V builtin required extension warning def err_riscv_builtin_requires_extension : Error< - "builtin requires at least one of the following extensions to be enabled: %0">; + "builtin requires%select{| at least one of the following extensions to be enabled}0: %1">; def err_riscv_builtin_invalid_lmul : Error< "LMUL argument must be in the range [0,3] or [5,7]">;
Index: clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c =================================================================== --- clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c +++ clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbkb-error.c @@ -3,10 +3,10 @@ int zip(int rs1) { - return __builtin_riscv_zip_32(rs1); // expected-error {{builtin requires at least one of the following extensions to be enabled: 'RV32'}} + return __builtin_riscv_zip_32(rs1); // expected-error {{builtin requires: 'RV32'}} } int unzip(int rs1) { - return __builtin_riscv_unzip_32(rs1); // expected-error {{builtin requires at least one of the following extensions to be enabled: 'RV32'}} + return __builtin_riscv_unzip_32(rs1); // expected-error {{builtin requires: 'RV32'}} } Index: clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c =================================================================== --- clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c +++ clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c @@ -2,5 +2,5 @@ // RUN: %clang_cc1 -triple riscv32 -target-feature +zbb -verify %s -o - int orc_b_64(int a) { - return __builtin_riscv_orc_b_64(a); // expected-error {{builtin requires at least one of the following extensions to be enabled: 'RV64'}} + return __builtin_riscv_orc_b_64(a); // expected-error {{builtin requires: 'RV64'}} } Index: clang/lib/Sema/SemaChecking.cpp =================================================================== --- clang/lib/Sema/SemaChecking.cpp +++ clang/lib/Sema/SemaChecking.cpp @@ -4369,13 +4369,20 @@ if (llvm::none_of(ReqOpFeatures, [&TI](StringRef OF) { return TI.hasFeature(OF); })) { std::string FeatureStrs; + bool IsExtension = true; for (StringRef OF : ReqOpFeatures) { // If the feature is 64bit, alter the string so it will print better in // the diagnostic. - if (OF == "64bit") + if (OF == "64bit") { + assert(ReqOpFeatures.size() == 1 && "Expected '64bit' to be alone"); OF = "RV64"; - if (OF == "32bit") + IsExtension = false; + } + if (OF == "32bit") { + assert(ReqOpFeatures.size() == 1 && "Expected '32bit' to be alone"); OF = "RV32"; + IsExtension = false; + } // Convert features like "zbr" and "experimental-zbr" to "Zbr". OF.consume_front("experimental-"); @@ -4390,6 +4397,7 @@ // Error message FeatureMissing = true; Diag(TheCall->getBeginLoc(), diag::err_riscv_builtin_requires_extension) + << IsExtension << TheCall->getSourceRange() << StringRef(FeatureStrs); } } Index: clang/include/clang/Basic/DiagnosticSemaKinds.td =================================================================== --- clang/include/clang/Basic/DiagnosticSemaKinds.td +++ clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -11636,7 +11636,7 @@ // RISC-V builtin required extension warning def err_riscv_builtin_requires_extension : Error< - "builtin requires at least one of the following extensions to be enabled: %0">; + "builtin requires%select{| at least one of the following extensions to be enabled}0: %1">; def err_riscv_builtin_invalid_lmul : Error< "LMUL argument must be in the range [0,3] or [5,7]">;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits