aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/dremf-type-compat-3.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/dremf-type-compat-3.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/dremf-type-compat-3.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/dremf-type-compat-3.c b/gcc-4.9/gcc/testsuite/gcc.dg/dremf-type-compat-3.c
new file mode 100644
index 000000000..3934a64e1
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/dremf-type-compat-3.c
@@ -0,0 +1,18 @@
+/* Test for bogus diagnostics for dremf definition. Although this
+ definition is formally incorrect in ISO C, a GNU extension permits
+ a prototype followed by unpromoted types in a function definition,
+ so it should be permitted when the function is built in. Bug
+ 16666. Test with -pedantic-errors, where the problem should still
+ be diagnosed. */
+/* { dg-do compile } */
+/* { dg-options "-pedantic-errors" } */
+
+float dremf (float, float); /* { dg-error "prototype declaration" } */
+
+float
+dremf (x, y)
+ float x; /* { dg-error "promoted argument 'x' doesn't match prototype" } */
+ float y; /* { dg-error "promoted argument 'y' doesn't match prototype" } */
+{
+ return x + y;
+}