[PATCH] D121380: Pragma `clang fp eval_method` needs to take as input a supported value.
This revision was automatically updated to reflect the committed changes. Closed by commit rG15ef06f453c6: Diagnose when `#pragma clang fp eval_method` doesn't have a supported value. (authored by zahiraam). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121380/new/ https://reviews.llvm.org/D121380 Files: clang/include/clang/Basic/DiagnosticParseKinds.td clang/test/Sema/fp-eval-pragma.cpp Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source', 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source', 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121380: Pragma `clang fp eval_method` needs to take as input a supported value.
zahiraam updated this revision to Diff 414467. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121380/new/ https://reviews.llvm.org/D121380 Files: clang/include/clang/Basic/DiagnosticParseKinds.td clang/test/Sema/fp-eval-pragma.cpp Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source', 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source', 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121380: Pragma `clang fp eval_method` needs to take as input a supported value.
zahiraam updated this revision to Diff 414424. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121380/new/ https://reviews.llvm.org/D121380 Files: clang/include/clang/Basic/DiagnosticParseKinds.td clang/test/Sema/fp-eval-pragma.cpp Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source' or 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source' or 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121380: Pragma `clang fp eval_method` needs to take as input a supported value.
zahiraam updated this revision to Diff 414416. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121380/new/ https://reviews.llvm.org/D121380 Files: clang/include/clang/Basic/DiagnosticParseKinds.td clang/test/Sema/fp-eval-pragma.cpp Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source' or 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source' or 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source', 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121380: Pragma `clang fp eval_method` needs to take as input a supported value.
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. LGTM with a tiny tweak to the diagnostic. Comment at: clang/include/clang/Basic/DiagnosticParseKinds.td:1493 + "'ignore', 'maytrap' or 'strict'|" + "'source' or 'double' or 'extended'}2">; Slight tweak here to use a list instead of multiple `or`s. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121380/new/ https://reviews.llvm.org/D121380 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D121380: Pragma `clang fp eval_method` needs to take as input a supported value.
zahiraam created this revision. zahiraam added reviewers: aaron.ballman, andrew.w.kaylor. Herald added a project: All. zahiraam requested review of this revision. Herald added a project: clang. Diagnose when `#pragma clang fp eval_method` doesn't have a supported value. Currently the compiler is crashing. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D121380 Files: clang/include/clang/Basic/DiagnosticParseKinds.td clang/test/Sema/fp-eval-pragma.cpp Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source' or 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source' or 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; Index: clang/test/Sema/fp-eval-pragma.cpp === --- clang/test/Sema/fp-eval-pragma.cpp +++ clang/test/Sema/fp-eval-pragma.cpp @@ -27,6 +27,16 @@ return 0; } +void apply_pragma_with_wrong_value() { + // expected-error@+1{{unexpected argument 'value' to '#pragma clang fp eval_method'; expected 'source' or 'double' or 'extended'}} +#pragma clang fp eval_method(value) +} + +int foo3() { + apply_pragma_with_wrong_value(); + return 0; +} + void foo() { auto a = __FLT_EVAL_METHOD__; { Index: clang/include/clang/Basic/DiagnosticParseKinds.td === --- clang/include/clang/Basic/DiagnosticParseKinds.td +++ clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1489,7 +1489,8 @@ "%select{" "'fast' or 'on' or 'off'|" "'on' or 'off'|" - "'ignore', 'maytrap' or 'strict'}2">; + "'ignore', 'maytrap' or 'strict'|" + "'source' or 'double' or 'extended'}2">; def err_pragma_invalid_keyword : Error< "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'">; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits