33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s 
 | 
						|
 | 
						|
struct A {
 | 
						|
   A() : value(), cvalue() { } // expected-error {{reference to type 'int' requires an initializer}}
 | 
						|
   int &value;
 | 
						|
   const int cvalue;
 | 
						|
};
 | 
						|
 | 
						|
struct B {
 | 
						|
  int field;
 | 
						|
};
 | 
						|
 | 
						|
struct X {
 | 
						|
   X() { }      // expected-error {{constructor for 'X' must explicitly initialize the reference member 'value'}} \
 | 
						|
                // expected-error {{constructor for 'X' must explicitly initialize the const member 'cvalue'}} \
 | 
						|
                // expected-error {{constructor for 'X' must explicitly initialize the reference member 'b'}} \
 | 
						|
                // expected-error {{constructor for 'X' must explicitly initialize the const member 'cb'}}
 | 
						|
   int &value; // expected-note{{declared here}}
 | 
						|
   const int cvalue; // expected-note{{declared here}}
 | 
						|
   B& b; // expected-note{{declared here}}
 | 
						|
   const B cb; // expected-note{{declared here}}
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// PR5924
 | 
						|
struct bar {};
 | 
						|
bar xxx();
 | 
						|
 | 
						|
struct foo {
 | 
						|
  foo_t a;  // expected-error {{unknown type name 'foo_t'}}
 | 
						|
  foo() : a(xxx()) {}  // no error here.
 | 
						|
};
 |