1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only -verify %s 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct A { 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao A() : value(), cvalue() { } // expected-error {{reference to type 'int' requires an initializer}} 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int &value; 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao const int cvalue; 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct B { 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct X { 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao X() { } // expected-error {{constructor for 'X' must explicitly initialize the reference member 'value'}} \ 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // expected-error {{constructor for 'X' must explicitly initialize the const member 'cvalue'}} \ 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // expected-error {{constructor for 'X' must explicitly initialize the reference member 'b'}} \ 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // expected-error {{constructor for 'X' must explicitly initialize the const member 'cb'}} 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int &value; // expected-note{{declared here}} 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao const int cvalue; // expected-note{{declared here}} 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao B& b; // expected-note{{declared here}} 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao const B cb; // expected-note{{declared here}} 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// PR5924 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct bar {}; 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaobar xxx(); 27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct foo { 29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao foo_t a; // expected-error {{unknown type name 'foo_t'}} 30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao foo() : a(xxx()) {} // no error here. 31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 32