view gcc/testsuite/g++.old-deja/g++.other/lookup19.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 assemble  }
// Test for proper handling of type lookup for conversion operator names.

// Test 1: Only at file scope
typedef int B;
struct A
{
  int B;
  operator B *(); // { dg-error "" } 
};

A::operator B * () // { dg-error "" } 
{
  return 0;
}

// Test 2: Only at class scope
struct C
{
  typedef int D;
  operator D *();
};

int D;
C::operator D * ()
{
  return 0;
}

// Test 3: Matching
struct E
{
  typedef int F;
  operator F *();
};

typedef int F;
E::operator F * ()
{
  return 0;
}

// Test 4: Conflicting
struct G
{
  typedef int H;
  operator H *();
};

typedef double H;
G::operator H * ()
{
  return 0;
}