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

            Bug ID: 95449
           Summary: void_t does not work with some uses of vector_size
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dummyddd at gmail dot com
  Target Milestone: ---

Created attachment 48646
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48646&action=edit
Example, same as on godbolt

Since GCC 10, the default void_t implementation does not work on some
expressions with vector_size types (see attachment or
https://godbolt.org/z/72xdVZ).
void_t implementations with the CWG issue 1558 workaround still work.

GCC versions between 4.9.0 and 9.3 can compile such expressions without the
workaround (even though the fix for CWG issue 1558 wasn't required until
c++14).
I wasn't able to reduce the example more than this without getting the code to
compile in GCC 10.
Specifically, replacing "SWithSize<sizeof((V{ })[0])>" with
"SWithSize<sizeof((Vec<s64>{ })[0])>" does work in GCC 10.

Reply via email to