nigelp-xmos updated this revision to Diff 307638. nigelp-xmos added a comment.
Run clang-format Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D92108/new/ https://reviews.llvm.org/D92108 Files: clang/lib/Parse/ParseDecl.cpp clang/test/Parser/attr-availability-xcore.c clang/test/Parser/attr-availability.c Index: clang/test/Parser/attr-availability.c =================================================================== --- clang/test/Parser/attr-availability.c +++ clang/test/Parser/attr-availability.c @@ -22,6 +22,14 @@ void f8() __attribute__((availability(macosx,message="a" L"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} +void f9() __attribute__((availability(macosx,message=u8"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f10() __attribute__((availability(macosx,message="a" u8"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f11() __attribute__((availability(macosx,message=u"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f12() __attribute__((availability(macosx,message="a" u"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + // rdar://10095131 enum E{ gorf __attribute__((availability(macosx,introduced=8.5, message = 10.0))), // expected-error {{expected string literal for optional message in 'availability' attribute}} Index: clang/test/Parser/attr-availability-xcore.c =================================================================== --- /dev/null +++ clang/test/Parser/attr-availability-xcore.c @@ -0,0 +1,11 @@ +// Test availability message string type when wide characters are 1 byte. +// REQUIRES: xcore-registered-target +// RUN: %clang_cc1 -triple xcore -fsyntax-only -verify %s + +#if !__has_feature(attribute_availability) +# error 'availability' attribute is not available +#endif + +void f7() __attribute__((availability(macosx,message=L"wide"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f8() __attribute__((availability(macosx,message="a" L"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} Index: clang/lib/Parse/ParseDecl.cpp =================================================================== --- clang/lib/Parse/ParseDecl.cpp +++ clang/lib/Parse/ParseDecl.cpp @@ -1118,7 +1118,7 @@ // Also reject wide string literals. if (StringLiteral *MessageStringLiteral = cast_or_null<StringLiteral>(MessageExpr.get())) { - if (MessageStringLiteral->getCharByteWidth() != 1) { + if (!MessageStringLiteral->isAscii()) { Diag(MessageStringLiteral->getSourceRange().getBegin(), diag::err_expected_string_literal) << /*Source='availability attribute'*/ 2;
Index: clang/test/Parser/attr-availability.c =================================================================== --- clang/test/Parser/attr-availability.c +++ clang/test/Parser/attr-availability.c @@ -22,6 +22,14 @@ void f8() __attribute__((availability(macosx,message="a" L"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} +void f9() __attribute__((availability(macosx,message=u8"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f10() __attribute__((availability(macosx,message="a" u8"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f11() __attribute__((availability(macosx,message=u"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f12() __attribute__((availability(macosx,message="a" u"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + // rdar://10095131 enum E{ gorf __attribute__((availability(macosx,introduced=8.5, message = 10.0))), // expected-error {{expected string literal for optional message in 'availability' attribute}} Index: clang/test/Parser/attr-availability-xcore.c =================================================================== --- /dev/null +++ clang/test/Parser/attr-availability-xcore.c @@ -0,0 +1,11 @@ +// Test availability message string type when wide characters are 1 byte. +// REQUIRES: xcore-registered-target +// RUN: %clang_cc1 -triple xcore -fsyntax-only -verify %s + +#if !__has_feature(attribute_availability) +# error 'availability' attribute is not available +#endif + +void f7() __attribute__((availability(macosx,message=L"wide"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} + +void f8() __attribute__((availability(macosx,message="a" L"b"))); // expected-error {{expected string literal for optional message in 'availability' attribute}} Index: clang/lib/Parse/ParseDecl.cpp =================================================================== --- clang/lib/Parse/ParseDecl.cpp +++ clang/lib/Parse/ParseDecl.cpp @@ -1118,7 +1118,7 @@ // Also reject wide string literals. if (StringLiteral *MessageStringLiteral = cast_or_null<StringLiteral>(MessageExpr.get())) { - if (MessageStringLiteral->getCharByteWidth() != 1) { + if (!MessageStringLiteral->isAscii()) { Diag(MessageStringLiteral->getSourceRange().getBegin(), diag::err_expected_string_literal) << /*Source='availability attribute'*/ 2;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits