From: Neil Booth <neil@daikokuya.demon.co.uk>
Date: Wed, 14 Feb 2001 07:39:40 +0000 (+0000)
Subject: * gcc.dg/cpp/sysmac1.c, sysmac2.c: New testcases.
X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ceeaadbb7808485164e3079e4bf60fa07a3ad66d;p=gcc.git

* gcc.dg/cpp/sysmac1.c, sysmac2.c: New testcases.

From-SVN: r39662
---

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 85123ffa415..d5b4ff1f8e5 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 00000000000..9925a7168d3
--- /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 00000000000..b15b25fa7be
--- /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;
+}