diff options
-rw-r--r-- | Lex/Lexer.cpp | 2 | ||||
-rw-r--r-- | test/Lexer/digraph.cpp | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Lex/Lexer.cpp b/Lex/Lexer.cpp index 3439356b56..98bbb38630 100644 --- a/Lex/Lexer.cpp +++ b/Lex/Lexer.cpp @@ -1529,7 +1529,7 @@ LexNextToken: } else if (Features.Digraphs && Char == ':') { Result.setKind(tok::l_square); // '<:' -> '[' CurPtr = ConsumeChar(CurPtr, SizeTmp, Result); - } else if (Features.Digraphs && Char == '>') { + } else if (Features.Digraphs && Char == '%') { Result.setKind(tok::l_brace); // '<%' -> '{' CurPtr = ConsumeChar(CurPtr, SizeTmp, Result); } else { diff --git a/test/Lexer/digraph.cpp b/test/Lexer/digraph.cpp new file mode 100644 index 0000000000..07c085a1d5 --- /dev/null +++ b/test/Lexer/digraph.cpp @@ -0,0 +1,15 @@ +// RUN: clang -fsyntax-only %s + +%:include <stdio.h> + + %:ifndef BUFSIZE + %:define BUFSIZE 512 + %:endif + + void copy(char d<::>, const char s<::>, int len) + <% + while (len-- >= 0) + <% + d<:len:> = s<:len:>; + %> + %> |