[Bug libstdc++/94033] is_trivially_copy_constructible<> fails with compiler error on complicated object with private default constructor

2020-03-07 Thread rafael at espindo dot la
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94033

--- Comment #5 from Rafael Avila de Espindola  ---
The regression (at least with the reduced testcase I uploaded) is from:

commit 58487c21b6a47c3fff6c6958684de866216a5593 (HEAD)
Author: Jonathan Wakely 
Date:   Mon May 20 12:32:51 2019 +0100

PR c++/90532 Ensure __is_constructible(T[]) is false

[Bug libstdc++/94033] is_trivially_copy_constructible<> fails with compiler error on complicated object with private default constructor

2020-03-06 Thread rafael at espindo dot la
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94033

--- Comment #5 from Rafael Avila de Espindola  ---
Created attachment 47994
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47994=edit
reduced testcase

I have reduced it a bit further.

[Bug libstdc++/94033] is_trivially_copy_constructible<> fails with compiler error on complicated object with private default constructor

2020-03-06 Thread a...@cloudius-systems.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94033

--- Comment #4 from Avi Kivity  ---
Type in build instructions, should be

g++ -std=gnu++17 -c database.cc

[Bug libstdc++/94033] is_trivially_copy_constructible<> fails with compiler error on complicated object with private default constructor

2020-03-06 Thread a...@cloudius-systems.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94033

--- Comment #3 from Avi Kivity  ---
Created attachment 47993
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47993=edit
reduced test case

Reduced test case, build with g++ -std=gnu++17 -c database

works on gcc 9.2.1, fails on gcc 10.

[Bug libstdc++/94033] is_trivially_copy_constructible<> fails with compiler error on complicated object with private default constructor

2020-03-04 Thread a...@cloudius-systems.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94033

--- Comment #2 from Avi Kivity  ---
It does not look similar to 93923. There, there is an incomplete type. In my
reproducer the type is complete but the default constructor is private.

Note that for simple cases is_trivially_constructible works (and evaluates to
false), both in gcc 9 and gcc 10. It is only in a few cases that it starts to
fail.

The errors are also very different from 93983.

[Bug libstdc++/94033] is_trivially_copy_constructible<> fails with compiler error on complicated object with private default constructor

2020-03-04 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94033

--- Comment #1 from Jonathan Wakely  ---
Probably another instance of PR 93983 and PR PR 93923.