diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2018-08-01 12:09:33 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2018-08-01 12:09:33 +0000 |
commit | 5ebbb72c205cff26072a2f381a3fe92e26ab8257 (patch) | |
tree | 6069af51b8c67f8d701c0039ecd38edd61d41cd0 /gcc | |
parent | e4837aa9fbb91803585f038de67b0d62d256b654 (diff) | |
download | gcc-5ebbb72c205cff26072a2f381a3fe92e26ab8257.zip gcc-5ebbb72c205cff26072a2f381a3fe92e26ab8257.tar.gz gcc-5ebbb72c205cff26072a2f381a3fe92e26ab8257.tar.bz2 |
re PR c++/86661 (g++ ICE:tree check: expected tree that contains ‘decl minimal’ structure, have ‘overload’ in note_name_declared_in_class, at cp/class.c:8288)
/cp
2018-08-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/86661
* class.c (note_name_declared_in_class): Use location_of in permerror
instead of DECL_SOURCE_LOCATION (for OVERLOADs).
/testsuite
2018-08-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/86661
* g++.dg/lookup/name-clash12.C: New.
From-SVN: r263207
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/class.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lookup/name-clash12.C | 9 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 503d8b4..d66c195 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-08-01 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/86661 + * class.c (note_name_declared_in_class): Use location_of in permerror + instead of DECL_SOURCE_LOCATION (for OVERLOADs). + 2018-07-31 Tom de Vries <tdevries@suse.de> PR debug/86687 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index c03a82b..de59831 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -8285,7 +8285,7 @@ note_name_declared_in_class (tree name, tree decl) A name N used in a class S shall refer to the same declaration in its context and when re-evaluated in the completed scope of S. */ - if (permerror (DECL_SOURCE_LOCATION (decl), + if (permerror (location_of (decl), "declaration of %q#D changes meaning of %qD", decl, OVL_NAME (decl))) inform (location_of ((tree) n->value), diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7fcc05d..7bf890a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-08-01 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/86661 + * g++.dg/lookup/name-clash12.C: New. + 2018-08-01 Richard Biener <rguenther@suse.de> * gcc.dg/tree-ssa/ssa-fre-68.c: New testcase. diff --git a/gcc/testsuite/g++.dg/lookup/name-clash12.C b/gcc/testsuite/g++.dg/lookup/name-clash12.C new file mode 100644 index 0000000..07ed8c3 --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/name-clash12.C @@ -0,0 +1,9 @@ +// PR c++/86661 + +typedef int a; // { dg-message "declared here" } +namespace { +class b { + a c; + template <typename> void a(); // { dg-error "changes meaning" } +}; +} |