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

            Bug ID: 78361
           Summary: [7 regression][c++1z] std::__is_referenceable doesn't
                    handle noexcept function types
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lucdanton at free dot fr
  Target Milestone: ---

Created attachment 40042
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40042&action=edit
untested patch

Currently on trunk __is_referenceable doesn't seem to handle noexcept function
types. This then carries over to e.g. std::add_pointer and then in turn to
std::decay_t, ultimately causing regressions for code like
std::make_tuple(std::free).

It might be instructive to grep for 6 dots (e.g. '\.\{6\}') to try and catch
all
those partial specializations that handle function types, and update them.

If I ape what is_function does that fixes the regression on my end, but other
than that I have not run the tests and in any case I don't know if it's the
right fix. It's attached as a patch.

Reply via email to