view gcc/testsuite/g++.old-deja/g++.bugs/900324_06.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

// { dg-do run  }
// g++ 1.37.1 bug 900324_06

// g++ is unable to use context information (i.e. the required type of the
// expression) to disambiguate a possibly overloaded function name when that
// name is used as either the second or the third operand of a ?: operator.

// It is also unable to use the fact that the given name is not in fact
// overloaded (and has only one possible interpretation).

// This results in improper errors being generated.

// keywords: overloading, function pointers, disambiguation, operator?:

int i;
void (*p)();

void function_0 ()
{
}

void function_1 ()
{
  p = i ? function_0 : 0;		// { dg-bogus "" } 
  p = i ? 0 : function_0;		// { dg-bogus "" } 
  p = i ? function_1 : function_0;	// { dg-bogus "" } 
}

int main () { return 0; }