diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2001-02-14 07:39:40 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2001-02-14 07:39:40 +0000 |
commit | ceeaadbb7808485164e3079e4bf60fa07a3ad66d (patch) | |
tree | da67ee7b4c7e34d93adb8f2c2fa6dfc7c6339a42 | |
parent | 7065e130e02c335c37f44874a83c4cbf59dfea89 (diff) | |
download | gcc-ceeaadbb7808485164e3079e4bf60fa07a3ad66d.zip gcc-ceeaadbb7808485164e3079e4bf60fa07a3ad66d.tar.gz gcc-ceeaadbb7808485164e3079e4bf60fa07a3ad66d.tar.bz2 |
* gcc.dg/cpp/sysmac1.c, sysmac2.c: New testcases.
From-SVN: r39662
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/sysmac1.c | 32 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/sysmac2.c | 34 |
3 files changed, 70 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 85123ff..d5b4ff1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2001-02-14 Neil Booth <neil@daikokuya.demon.co.uk> + + * gcc.dg/cpp/sysmac1.c, sysmac2.c: New tests. + 2001-02-12 Geoffrey Keating <geoffk@redhat.com> * g++.dg/vtgc1.C: Update for new ABI. diff --git a/gcc/testsuite/gcc.dg/cpp/sysmac1.c b/gcc/testsuite/gcc.dg/cpp/sysmac1.c new file mode 100644 index 0000000..9925a71 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/sysmac1.c @@ -0,0 +1,32 @@ +/* Copyright (C) 2001 Free Software Foundation, Inc. */ + +/* { dg-do preprocess } */ +/* { dg-options "-std=gnu99 -pedantic -Wtraditional" } */ + +/* Tests diagnostics are suppressed for some macros defined in system + headers. */ + +/* Source: Neil Booth, 15 Jan 2001. */ + +#define uint 1U +#define str(x) x +#define foo(x, y...) bar(x, ##y) /* { dg-warning "named variadic macros" } */ + +# 16 "system.h" 1 3 /* { dg-warning "followed by integer" } */ + +#define sys_uint 1U +#define sys_str(x) x +#define sys_foo(x, y...) bar (x, ##y) + +# 22 "bar.c" 2 /* { dg-warning "expected to return" } */ + +#if uint /* { dg-warning "traditional C rejects" } */ +#endif +#if sys_uint /* { dg-bogus "traditional C rejects" } */ +#endif + +(str); /* { dg-warning "used with arguments" } */ +(sys_str); /* { dg-bogus "used with arguments" } */ + +foo (one_arg); /* { dg-warning "requires rest arguments" } */ +sys_foo (one_arg); /* { dg-bogus "requires rest arguments" } */ diff --git a/gcc/testsuite/gcc.dg/cpp/sysmac2.c b/gcc/testsuite/gcc.dg/cpp/sysmac2.c new file mode 100644 index 0000000..b15b25f --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/sysmac2.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2001 Free Software Foundation, Inc. */ + +/* { dg-do compile } */ +/* { dg-options "-std=gnu99 -pedantic -Wtraditional" } */ + +/* Tests diagnostics are suppressed for some macros defined in system + headers. */ + +/* Source: Neil Booth, 15 Jan 2001. */ + +#define uint 1U +#define fl 1.0f +#define ld 1.0L + +# 16 "system.h" 1 3 /* { dg-warning "followed by integer" } */ + +#define sys_uint 1U +#define sys_fl 1.0f +#define sys_ld 1.0L + +# 22 "bar.c" 2 /* { dg-warning "expected to return" } */ + +int +main () +{ + int u1 = uint; /* { dg-warning "traditional C rejects" } */ + int u2 = sys_uint; /* { dg-bogus "traditional C rejects" } */ + float f1 = fl; /* { dg-warning "traditional C rejects" } */ + float f2 = sys_fl; /* { dg-bogus "traditional C rejects" } */ + long double ld1 = ld; /* { dg-warning "traditional C rejects" } */ + long double l2 = sys_ld; /* { dg-bogus "traditional C rejects" } */ + + return 0; +} |