OSDN Git Service

* gcc.dg/return-type-2.c: New test.
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 28 Aug 2000 01:06:33 +0000 (01:06 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 28 Aug 2000 01:06:33 +0000 (01:06 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36010 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/return-type-2.c [new file with mode: 0644]

index 5f478db..6466b59 100644 (file)
@@ -1,3 +1,7 @@
+2000-08-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcc.dg/return-type-2.c: New test.
+
 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
 
        * gcc.c-torture/compile/20000825-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/return-type-2.c b/gcc/testsuite/gcc.dg/return-type-2.c
new file mode 100644 (file)
index 0000000..183c6a8
--- /dev/null
@@ -0,0 +1,47 @@
+/* Bogus warnings claiming we fall off the end of a non-void function.
+   By Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8/27/2000.  */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wreturn-type" } */
+
+extern void abort (void) __attribute__ ((__noreturn__));
+
+int
+foo1 (int i)
+{
+  if (i)
+    return i;
+
+  abort ();
+} /* { dg-bogus "control reaches end of non-void function" "warning for falling off end of non-void function" } */
+
+__inline__ int
+foo2 (int i)
+{
+  if (i)
+    return i;
+
+  abort ();
+} /* { dg-bogus "control reaches end of non-void function" "warning for falling off end of non-void function" } */
+
+static int
+foo3 (int i)
+{
+  if (i)
+    return i;
+
+  abort ();
+} /* { dg-bogus "control reaches end of non-void function" "warning for falling off end of non-void function" } */
+
+static __inline__ int
+foo4 (int i)
+{
+  if (i)
+    return i;
+
+  abort ();
+} /* { dg-bogus "control reaches end of non-void function" "warning for falling off end of non-void function" } */
+
+int bar (int i)
+{
+  return foo1 (i) + foo2 (i) + foo3 (i) + foo4 (i);
+}