view gcc/testsuite/g++.dg/other/pr63815.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR target/63815
// { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && lp64 } } }
// { dg-options "-mcmodel=large" }
// { dg-additional-options "-fpic" { target fpic } }

struct ICCStringClass
{
  virtual int CreateString (int) = 0;
};

struct AGSCCDynamicObject
{
  virtual void Unserialize () = 0;
};

struct ScriptString:AGSCCDynamicObject, ICCStringClass
{
  virtual int CreateString (int);
  virtual void Unserialize ();
};

int
__attribute__ ((noinline))
CreateNewScriptString (int fromText, bool reAllocate = true)
{
  return fromText;
}

int
__attribute__ ((noinline))
ScriptString::CreateString (int fromText)
{
  return CreateNewScriptString (fromText);
}

void
__attribute__ ((noinline))
ScriptString::Unserialize ()
{
}

int
main ()
{
  ICCStringClass *x = new ScriptString;

  if (x->CreateString (1) != 1)
    __builtin_abort ();
  return 0;
}