view gcc/testsuite/g++.dg/torture/pr77745.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

// { dg-do run }

#ifndef NOINLINE
#define NOINLINE /* */
#endif

inline void* operator new(__SIZE_TYPE__, void* __p) noexcept { return __p; }

long NOINLINE foo(char *c1, char *c2)
{
  long *p1 = new (c1) long;
  *p1 = 100;
  long long *p2 = new (c2) long long;
  *p2 = 200;
  long *p3 = new (c2) long;
  *p3 = 200;
  return *p1;
}
int main()
{
  union {
      char c;
      long l;
      long long ll;
  } c;
  if (foo(&c.c, &c.c) != 200)
    __builtin_abort();
}