PR c/5163: * c-decl.c (duplicate_decls): As needed, set DECL_INLINE when we have a function body associated. Minor cleanups. (grokdeclarator): Do not set DECL_INLINE without a function body. * gcc.dg/20011223-1.c: New. * gcc.dg/inline-1.c: New. From-SVN: r48302
29 lines
698 B
C
29 lines
698 B
C
/* Verify that DECL_INLINE gets copied between DECLs properly. */
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-O1" } */
|
|
/* { dg-final { 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);
|
|
}
|