| // RUN: %clang_cc1 %s -std=c++11 -fms-compatibility -fsyntax-only -verify | |
| struct S { | |
| enum { E = 1 }; | |
| static const int sdm = 1; | |
| }; | |
| void f(S *s) { | |
| char array[s->E] = { 0 }; | |
| } | |
| extern S *s; | |
| constexpr int e1 = s->E; | |
| S *side_effect(); // expected-note{{declared here}} | |
| constexpr int e2 = // expected-error{{must be initialized by a constant expression}} | |
| side_effect()->E; // expected-note{{cannot be used in a constant expression}} | |
| constexpr int e4 = s->sdm; |