diff gcc/testsuite/c-c++-common/raw-string-16.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/c-c++-common/raw-string-16.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,33 @@
+// PR preprocessor/57620
+// { dg-do compile }
+// { dg-options "-std=gnu99 -Wtrigraphs" { target c } }
+// { dg-options "-std=gnu++11 -Wtrigraphs" { target c++ } }
+
+const void *s0 = R"abc\
+def()abcdef";
+	// { dg-error "invalid character" "invalid" { target *-*-* } 6 }
+	// { dg-error "stray" "stray" { target *-*-* } 6 }
+const void *s1 = R"abcdefghijklmn??/(a)abcdefghijklmn???";
+	// { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+	// { dg-error "stray" "stray" { target *-*-* } .-2 }
+
+const void *s2 = R"abcdefghijklmno??/(a)abcdefghijklmno???";
+	// { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+	// { dg-error "stray" "stray" { target *-*-* } .-2 }
+const void *s3 = R"abcdefghijklmnop??=(a)abcdefghijklmnop??=?"; // { dg-warning "trigraph ..= ignored" }
+	// { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+	// { dg-error "stray" "stray" { target *-*-* } .-2 }
+const void *s4 = R"abc\
+()abcdef";
+	// { dg-error "invalid character" "invalid" { target *-*-* } 20 }
+	// { dg-error "stray" "stray" { target *-*-* } 20 }
+const void *s5 = R"\
+()";
+	// { dg-error "invalid character" "invalid" { target *-*-* } 24 }
+	// { dg-error "stray" "stray" { target *-*-* } 24 }
+const void *s6 = R"\
+a()a";
+	// { dg-error "invalid character" "invalid" { target *-*-* } 28 }
+	// { dg-error "stray" "stray" { target *-*-* } 28 }
+
+int main () {}