1 // Test for composite pointer type.
2 // { dg-options -std=c++17 }
3 
4 typedef void (*P)();
5 typedef void (*NP)() noexcept;
6 
7 void f();
8 void g() noexcept;
9 
10 bool b;
11 
12 template <class T, class U> struct Same;
13 template <class T> struct Same<T,T> { };
14 
15 Same<decltype(b ? &f : &g),P> s;
16 
17 int main()
18 {
19   P p = 0;
20   NP np = 0;
21 
22   p == np;
23   p != np;
24   p < np;
25 }
26