view gcc/testsuite/g++.dg/other/pr63815.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +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;
}