https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87476

--- Comment #4 from Bernd Edlinger <edlinger at gcc dot gnu.org> ---
-             if (char_type != char_type_node
-                 && char_type != signed_char_type_node
-                 && char_type != unsigned_char_type_node)
+             if (char_type != char_type_node)

This restored the previous logic, but maybe that was already broken.

This (valid?) test case is rejected by gcc-8.2 and earlier:

template <class> class f {
public:
    void operator()() {
       constexpr unsigned char p[] = "11111";
    }
};

void v() {
    f<int>{}();
}

Reply via email to