diff --git a/gcc/testsuite/g++.dg/cpp1z/nontype5.C b/gcc/testsuite/g++.dg/cpp1z/nontype5.C new file mode 100644 index 0000000000000000000000000000000000000000..7e6639dd175f0637c3c383af15e97f9d1897dc98 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1z/nontype5.C @@ -0,0 +1,11 @@ +// PR c++/83596 +// { dg-do compile { target c++17 } } + +struct X { int x; int y; }; +template <int X::* mp> int get(X& x) { return x.*mp; } +constexpr int X::* getMP() { return &X::y; } +constexpr int X::* mptr = getMP(); +int test() { + X x{1, 2}; + return get<mptr>(x); +}