aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/expr/discarded1a.C
blob: 1c4dff4553e32e42c2854ea6b5ef3f094c14c41d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// A version of discarded1.C using volatile types.
// PR c++/111419

struct Incomplete;

template<class T, int> struct Holder { T t; }; // { dg-error "incomplete" }

extern volatile Holder<Incomplete, 0> a;
extern volatile Holder<Incomplete, 1>& b;
extern volatile Holder<Incomplete, 2>* 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" }
}