aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lex/Lexer.cpp2
-rw-r--r--test/Lexer/digraph.cpp15
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:>;
+ %>
+ %>