// Diagnose failed assumptions involving a function call. // { dg-do compile { target c++17 } } struct string { const char *p; constexpr string (const char *p): p(p) { } constexpr int length () { return __builtin_strlen (p); } }; constexpr int f() { string s ("foobar"); [[assume (s.length () == 0)]]; // { dg-error "assume" } // { dg-message "6 == 0" "" { target *-*-* } .-1 } return s.length (); } static_assert (f()); // { dg-error "non-constant" }