aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNeil Booth <neilb@earthling.net>2000-12-04 22:06:41 +0000
committerNeil Booth <neil@gcc.gnu.org>2000-12-04 22:06:41 +0000
commitbb0067f231b0cf4cca900b08f1d056f48feb6fa1 (patch)
tree7803e029f0fe4bdb92d4e4526fbb4fdad31ec841 /gcc
parent7682e7bc2eb0a7a2a839fabd7c9fa103c117b876 (diff)
downloadgcc-bb0067f231b0cf4cca900b08f1d056f48feb6fa1.zip
gcc-bb0067f231b0cf4cca900b08f1d056f48feb6fa1.tar.gz
gcc-bb0067f231b0cf4cca900b08f1d056f48feb6fa1.tar.bz2
assert_trad1.c, [...]: New tests.
* gcc.dg/cpp/assert_trad1.c, assert_trad2.c, assert_trad3.c: New tests. From-SVN: r38012
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/cpp/assert_trad1.c46
-rw-r--r--gcc/testsuite/gcc.dg/cpp/assert_trad2.c24
-rw-r--r--gcc/testsuite/gcc.dg/cpp/assert_trad3.c10
4 files changed, 85 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4ec9d5a..a4ed215 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2000-12-04 Neil Booth <neilb@earthling.net>
+
+ * gcc.dg/cpp/assert_trad1.c, assert_trad2.c, assert_trad3.c:
+ New tests.
+
2000-12-03 Kaveh R. Ghazi <ghazi@teal.rutgers.edu>
* gcc.c-torture/execute/string-opt-11.c: Add more strspn checks.
diff --git a/gcc/testsuite/gcc.dg/cpp/assert_trad1.c b/gcc/testsuite/gcc.dg/cpp/assert_trad1.c
new file mode 100644
index 0000000..69f644b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/assert_trad1.c
@@ -0,0 +1,46 @@
+/* Basic tests of the #assert preprocessor extension. */
+/* { dg-do compile } */
+/* { dg-options "-traditional" } */
+
+/* #define def unused expansion */ /* tradcpp can't handle macros in answers. */
+#define fail int failit
+
+#assert abc (def)
+#assert abc (ghi)
+#assert abc (jkl)
+#assert space ( s p a c e )
+
+/* Basic: */
+#if !#abc (def) || !#abc (ghi) || !#abc (jkl)
+fail
+#endif
+
+/* any answer for #abc */
+#if !#abc
+fail
+#endif
+
+/* internal whitespace is collapsed,
+ external whitespace is deleted */
+#if !#space (s p a c e) || !#space ( s p a c e ) || #space (space)
+fail
+#endif
+
+/* removing assertions */
+#unassert abc (jkl)
+#if !#abc || !#abc (def) || !#abc (ghi) || #abc (jkl)
+fail
+#endif
+
+#unassert abc
+#if #abc || #abc (def) || #abc (ghi) || #abc (jkl)
+fail
+#endif
+
+int gobble
+
+/* make sure it can succeed too.
+ also check space before open paren isn't significant */
+#if #space(s p a c e)
+;
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/assert_trad2.c b/gcc/testsuite/gcc.dg/cpp/assert_trad2.c
new file mode 100644
index 0000000..2f6963e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/assert_trad2.c
@@ -0,0 +1,24 @@
+/* Malformed assertion tests. */
+/* { dg-do preprocess } */
+/* { dg-options "-traditional" } */
+
+#assert /* { dg-error "without predicate" "assert w/o predicate" } */
+#assert % /* { dg-error "an identifier" "assert punctuation" } */
+#assert 12 /* { dg-error "an identifier" "assert number" } */
+#assert abc /* { dg-error "missing" "assert w/o answer" } */
+
+#if # /* { dg-error "without predicate" "test w/o predicate" } */
+#endif
+
+#if #% /* { dg-error "an identifier" "test punctuation" } */
+#endif /* { dg-error "parse error" "" { target *-*-* } 13 } */
+
+#if #12 /* { dg-error "an identifier" "test number" } */
+#endif /* { dg-error "parse error" "" { target *-*-* } 16 } */
+
+#if #abc
+#error /* { dg-bogus "error" "test w/o answer" } */
+#endif
+
+#if #abc[def] /* { dg-error "parse error" "bad syntax" } */
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/assert_trad3.c b/gcc/testsuite/gcc.dg/cpp/assert_trad3.c
new file mode 100644
index 0000000..641ba5c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/assert_trad3.c
@@ -0,0 +1,10 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-A abc=def -A abc\(ghi\) \"-Aabc = jkl\" -A abc=mno -A -abc=mno -traditional" } */
+
+/* Test -A command line syntax. Source Neil Booth. 31 Oct 2000. */
+
+#if !#abc (def) || !#abc (ghi) || !#abc (jkl) || #abc(mno)
+#error Command line -A assertions
+#endif