[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 --- Comment #5 from Alexandre Oliva --- Author: aoliva Date: Wed Feb 13 19:08:52 2019 New Revision: 268851 URL: https://gcc.gnu.org/viewcvs?rev=268851=gcc=rev Log: [PR86379] do not use TREE_TYPE for USING_DECL_SCOPE It's too risky to reuse the type field for USING_DECL_SCOPE. Language-independent parts of the compiler, such as location and non-lvalue wrappers, happily take the TREE_TYPE of a USING_DECL as if it was a type rather than an unrelated scope. For better or worse, USING_DECLs use the non-common struct so we can use the otherwise unused result field. Adjust fallout, from uses of TREE_TYPE that were supposed to be USING_DECL_SCOPE, to other accidental uses of TREE_TYPE of a USING_DECL. for gcc/cp/ChangeLog PR c++/86379 * cp-tree.h (USING_DECL_SCOPE): Use result rather than type. * name-lookup.c (strip_using_decl): Use USING_DECL_SCOPE. * search.c (protected_accessible_p): Follow USING_DECL_DECLS. (shared_member_p): Likewise. (lookup_member): Likewise. * decl.c (grok_special_member_properties): Skip USING_DECLs. * semantics.c (finish_omp_declare_simd_methods): Likewise. (finish_qualified_id_expr): Do not call shared_member_p with a dependent expr. for gcc/testsuite/ChangeLog PR c++/86379 * g++.dg/cpp0x/pr86379.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr86379.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/search.c trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog
[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 Alexandre Oliva changed: What|Removed |Added Keywords||patch Status|NEW |ASSIGNED --- Comment #4 from Alexandre Oliva --- https://gcc.gnu.org/ml/gcc-patches/2019-01/msg01764.html
[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 Alexandre Oliva changed: What|Removed |Added CC||aoliva at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |aoliva at gcc dot gnu.org --- Comment #3 from Alexandre Oliva --- mine
[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 Jakub Jelinek changed: What|Removed |Added Target Milestone|8.2 |8.3 --- Comment #2 from Jakub Jelinek --- GCC 8.2 has been released.
[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 Richard Biener changed: What|Removed |Added Target Milestone|--- |8.2
[Bug c++/86379] [8/9 Regression] Class member access of |using|'d field goes horribly awry in presence of templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86379 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |NEW Known to work||7.3.0 Keywords||rejects-valid Last reconfirmed||2018-07-02 CC||jason at gcc dot gnu.org Ever confirmed|0 |1 Summary|Class member access of |[8/9 Regression] Class ||using|'d field goes|member access of |using|'d |horribly awry in presence |field goes horribly awry in |of templates|presence of templates Known to fail||8.1.0, 9.0 --- Comment #1 from Jonathan Wakely --- Started to be rejected with r251438: PR c++/81236 - ICE with template-id in generic lambda