summaryrefslogtreecommitdiff
path: root/test/Lexer/unicode.c
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-12-14 13:15:08 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-12-14 13:15:08 +0000
commit6c3c48f7a30186ac9d31b7e913c61786ae6526e7 (patch)
tree94ce559787a2d2dded184f4813ed4eb029700f2f /test/Lexer/unicode.c
parentf38a7e77a530c9c439c9b49f033deabf00a569bd (diff)
downloadclang-6c3c48f7a30186ac9d31b7e913c61786ae6526e7.tar.gz
Warn if we find a Unicode homoglyph for a symbol in an identifier.
Specifically, warn if: * we find a character that the language standard says we must treat as an identifier, and * that character is not reasonably an identifier character (it's a punctuation character or similar), and * it renders identically to a valid non-identifier character in common fixed-width fonts. Some tools "helpfully" substitute the surprising characters for the expected characters, and replacing semicolons with Greek question marks is a common "prank". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320697 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Lexer/unicode.c')
-rw-r--r--test/Lexer/unicode.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/Lexer/unicode.c b/test/Lexer/unicode.c
index 30805d1acb..30e353fa79 100644
--- a/test/Lexer/unicode.c
+++ b/test/Lexer/unicode.c
@@ -33,3 +33,8 @@ int main () {
int 🌷 = 🌵(🌹);
return 🌷;
}
+
+int n; = 3; // expected-warning {{treating Unicode character <U+037E> as identifier character rather than as ';' symbol}}
+int *n꞉꞉v = &n;; // expected-warning 2{{treating Unicode character <U+A789> as identifier character rather than as ':' symbol}}
+ // expected-warning@-1 {{treating Unicode character <U+037E> as identifier character rather than as ';' symbol}}
+int v=[=](auto){return~x;}(); // expected-warning 12{{treating Unicode character}}