// A version of discarded1.C using volatile types. // PR c++/111419 struct Incomplete; template struct Holder { T t; }; // { dg-error "incomplete" } extern volatile Holder a; extern volatile Holder& b; extern volatile Holder* c; int main() { a; // { dg-message "required from here" } b; // { dg-message "required from here" } // { dg-warning "implicit dereference will not access object" "" { target *-*-* } .-1 } *c; // { dg-message "required from here" } }