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

David Stone <david at doublewise dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |david at doublewise dot net

--- Comment #1 from David Stone <david at doublewise dot net> ---
P0848 (Conditionally trivial special member functions) makes the change
suggested by this bug report. However, similar code now causes an internal
compiler error when testing conditionally trivial special member functions with
-fconcepts:


#include <type_traits>

template<typename T>
struct s {
    ~s() {}
    ~s() requires(std::is_same_v<T, int>) = default;
};

static_assert(std::is_trivially_destructible_v<s<int>>);



Outputs:

<source>: In instantiation of 'struct s<int>':

/opt/compiler-explorer/gcc-trunk-20190730/include/c++/10.0.0/type_traits:1410:12:
  required from 'struct std::is_trivially_destructible<s<int> >'

/opt/compiler-explorer/gcc-trunk-20190730/include/c++/10.0.0/type_traits:3154:25:
  required from 'constexpr const bool std::is_trivially_destructible_v<s<int>
>'

<source>:9:20:   required from here

<source>:4:8: internal compiler error: tree check: expected function_type or
method_type, have lang_type in deduce_noexcept_on_destructor, at
cp/class.c:4804

    4 | struct s {

      |        ^

Please submit a full bug report,

with preprocessed source if appropriate.

See <https://gcc.gnu.org/bugs/> for instructions.

Compiler returned: 1





See it live: https://godbolt.org/z/viCkS0

Reply via email to