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

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 84e7813d76e9
children
line wrap: on
line source

// { dg-do compile { target c++11 } }
// { dg-additional-options "-O1 -Wno-pedantic" }
// PR c++/83187 ICE in get_alias_set due to canonical type confusion.

extern "C" {
  double cos (double);
  double sin (double);
}

template <typename> class COMPLEX;

template <>
struct COMPLEX<double>
{
  COMPLEX(double r, double i);

  __complex__ mem;
};

COMPLEX<double>::COMPLEX (double r, double i)
  : mem {r, i} {}

typedef double dbl_t;

dbl_t var;

void foo (COMPLEX<double> *ptr)
{
  const dbl_t unused = var;

  *ptr = COMPLEX<double> (cos (var), sin (var));
}