https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
Jakub Jelinek changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #10 from Jakub Jelinek ---
Author: jakub
Date: Fri Jan 19 22:37:37 2018
New Revision: 256905
URL: https://gcc.gnu.org/viewcvs?rev=256905=gcc=rev
Log:
PR c++/81167
* call.c (joust): Use TREE_TYPE (source) if source is
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #9 from Jakub Jelinek ---
Created attachment 43180
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43180=edit
gcc8-pr81167.patch
Untested fix. This assumes that the type we want as source is always some
class type, which seems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #8 from Jakub Jelinek ---
In gcc/testsuite/ we apparently have just g++.old-deja/g++.benjamin/16077.C
and g++.old-deja/g++.other/overcnv2.C testcases covering those and in both
cases
source is a POINTER_TYPE.
With check-c++-all
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
Jakub Jelinek changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
Richard Biener changed:
What|Removed |Added
Priority|P3 |P1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #6 from David Malcolm ---
Candidate patch for the ICE posted here:
https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01725.html
Actually fixing the diagnostic as per comment #5 would be a separate patch.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #5 from David Malcolm ---
Note to self: I believe the "operator T() &&" here is a user-defined conversion
from an rvalue reference to T.
We have in joust at ../../src/gcc/cp/call.c:10071
10071 tree source = source_type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #4 from David Malcolm ---
Minimal reproducer:
$ cat ../../src/pr81167.C
struct bar;
struct foo
{
foo () {}
foo (const bar &) {}
};
struct bar
{
operator foo() && { return foo (); }
};
void test ()
{
foo f = bar ();
}
$
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #3 from David Malcolm ---
The issue is that a diagnostic is passing NULL to a %qH (which was a %qT).
%T handles NULL gracefully by printing the empty string,
whereas %H/%I fail with an assertion failure.
Happens here:
#8
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
David Malcolm changed:
What|Removed |Added
Status|NEW |ASSIGNED
Assignee|unassigned
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
Richard Biener changed:
What|Removed |Added
Version|7.0 |8.0
Target Milestone|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
Martin Liška changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81167
--- Comment #1 from Martin Liška ---
Created attachment 41606
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41606=edit
test-case
14 matches
Mail list logo