aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c')
-rw-r--r--gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c b/gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c
new file mode 100644
index 000000000..1dde113d2
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/c-c++-common/raw-string-3.c
@@ -0,0 +1,59 @@
+// If not c++0x/gnu99, the {,u,u8,U,L}R prefix should be parsed as separate
+// token.
+// { dg-do compile }
+// { dg-options "" { target c } }
+// { dg-options "-std=c++98" { target c++ } }
+
+const void *s0 = R"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 7 }
+const void *s1 = uR"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 9 }
+const void *s2 = UR"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 11 }
+const void *s3 = u8R"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 13 }
+const void *s4 = LR"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 15 }
+
+const int i0 = R'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 18 }
+const int i1 = uR'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 20 }
+const int i2 = UR'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 22 }
+const int i3 = u8R'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 24 }
+const int i4 = LR'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
+ // { dg-error "expected ',' or ';'" "expected" { target c } 26 }
+
+#define R "a"
+#define uR "b"
+#define UR "c"
+#define u8R "d"
+#define LR "e"
+
+const void *s5 = R"(a)";
+const void *s6 = uR"(a)";
+const void *s7 = UR"(a)";
+const void *s8 = u8R"(a)";
+const void *s9 = LR"(a)";
+
+#undef R
+#undef uR
+#undef UR
+#undef u8R
+#undef LR
+
+#define R 1 +
+#define uR 2 +
+#define UR 3 +
+#define u8R 4 +
+#define LR 5 +
+
+const int i5 = R'a';
+const int i6 = uR'a';
+const int i7 = UR'a';
+const int i8 = u8R'a';
+const int i9 = LR'a';
+
+int main () {}