2009-12-16 04:14:24 +08:00
// RUN: %clang_cc1 -fsyntax-only -verify %s
2008-11-05 23:29:30 +08:00
class X {
public :
explicit X ( const X & ) ;
2009-12-19 11:01:41 +08:00
X ( int * ) ; // expected-note 2{{candidate function}}
2008-11-05 23:29:30 +08:00
explicit X ( float * ) ;
} ;
class Y : public X { } ;
void f ( Y y , int * ip , float * fp ) {
2009-12-19 11:01:41 +08:00
X x1 = y ; // expected-error{{no matching constructor for initialization of 'class X'}}
2008-11-05 23:29:30 +08:00
X x2 = 0 ;
X x3 = ip ;
2009-12-19 11:01:41 +08:00
X x4 = fp ; // expected-error{{no viable conversion}}
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'}}