2009-03-24 10:24:46 +08:00
// RUN: clang-cc -fsyntax-only -verify %s
2008-11-05 23:29:30 +08:00
class X {
public :
explicit X ( const X & ) ;
X ( int * ) ; // expected-note{{candidate function}}
explicit X ( float * ) ;
} ;
class Y : public X { } ;
void f ( Y y , int * ip , float * fp ) {
2008-11-22 21:44:36 +08:00
X x1 = y ; // expected-error{{no matching constructor for initialization of 'x1'; candidate is:}}
2008-11-05 23:29:30 +08:00
X x2 = 0 ;
X x3 = ip ;
2008-12-24 08:01:03 +08:00
X x4 = fp ; // expected-error{{cannot initialize 'x4' with an lvalue of type 'float *'}}
2008-11-05 23:29:30 +08:00
}
2009-02-19 08:52:42 +08:00
struct foo {
void bar ( ) ;
} ;
// PR3600
void test ( const foo * P ) { P - > bar ( ) ; } // expected-error{{cannot initialize object parameter of type 'struct foo' with an expression of type 'struct foo const'}}