diff options
author | Neil Booth <neilb@earthling.net> | 2000-12-04 22:06:41 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2000-12-04 22:06:41 +0000 |
commit | bb0067f231b0cf4cca900b08f1d056f48feb6fa1 (patch) | |
tree | 7803e029f0fe4bdb92d4e4526fbb4fdad31ec841 | |
parent | 7682e7bc2eb0a7a2a839fabd7c9fa103c117b876 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/assert_trad1.c | 46 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/assert_trad2.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/assert_trad3.c | 10 |
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 |