summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/inline-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/inline-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/inline-1.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/inline-1.c b/gcc/testsuite/gcc.dg/inline-1.c
new file mode 100644
index 000000000..4dce611d9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/inline-1.c
@@ -0,0 +1,28 @@
+/* Verify that DECL_INLINE gets copied between DECLs properly. */
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+/* { dg-final { if [ istarget hppa*-*-* ] { scan-assembler-not "xyzzy?,%r" } else { scan-assembler-not "xyzzy" } } } */
+
+/* Test that declaration followed by definition inlines. */
+static inline int xyzzy0 (int);
+static int xyzzy0 (int x) { return x; }
+int test0 (void)
+{
+ return xyzzy0 (5);
+}
+
+/* Test that definition following declaration inlines. */
+static int xyzzy1 (int);
+static inline int xyzzy1 (int x) { return x; }
+int test1 (void)
+{
+ return xyzzy1 (5);
+}
+
+/* Test that redeclaration inside a function body inlines. */
+extern inline int xyzzy2 (int x) { return x; }
+int test2 (void)
+{
+ extern int xyzzy2 (int);
+ return xyzzy2 (5);
+}