/* { dg-do run { target fpic } } */
/* { dg-options "-O0 -fpic" } */

typedef int (*fn) (void);

static inline int
foo (void)
{
  return 1;
}

fn
test (void)
{
  return foo;
}

int
main (void)
{
  fn f = test ();
  return f () != 1;
}

doesn't link on i386/x86_64 in 4.1 (regression from 4.0) - function foo isn't
marked as referenced and therefore not emitted.
This was fixed on the trunk in PR25758.


-- 
           Summary: [4.1 regression] -O0 -fpic link failure
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: i386-linux, x86_64-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27758

Reply via email to