Hi David, Patrick, On Thu, 1 Jun 2023 18:33:46 +0200 Bernhard Reutner-Fischer <rep.dot....@gmail.com> wrote:
> On Thu, 1 Jun 2023 11:24:06 -0400 > Patrick Palka <ppa...@redhat.com> wrote: > > > On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via > > Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > > > diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > > > index 131b212ff73..19dfb3ed782 100644 > > > --- a/gcc/cp/tree.cc > > > +++ b/gcc/cp/tree.cc > > > @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree > > > index_type, int dependent) > > > } > > > > > > /* Avoid spurious warnings with VLAs (c++/54583). */ > > > - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) > > > + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) > > > > Hmm, this change seems undesirable... > > mhm, yes that is misleading. I'll prepare a patch to revert this. > Let me have a look if there were other such CAN_HAVE_LOCATION_P changes > that we'd want to revert. Sorry for that! I'd revert the hunk above and the one in gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text), please see attached. Bootstrap running, ok for trunk if it passes? thanks,
>From 322bce380144b5199cca5775f7a3f0fb30a219ae Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer <al...@gcc.gnu.org> Date: Thu, 1 Jun 2023 19:44:19 +0200 Subject: [PATCH] c++, analyzer: Expand CAN_HAVE_LOCATION_P macro. r14-985-gca2007a9bb3074 used the collapsed macro definition CAN_HAVE_LOCATION_P in gcc-rich-location.cc and r14-977-g8861c80733da5c in c++'s build_cplus_array_type (). However, although otherwise correct, the usage of CAN_HAVE_LOCATION_P in these two spots is misleading, so this patch reverts aforementioned two hunks. gcc/cp/ChangeLog: * tree.cc (build_cplus_array_type): Revert using the macro CAN_HAVE_LOCATION_P. gcc/ChangeLog: * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Revert using the macro CAN_HAVE_LOCATION_P. --- gcc/cp/tree.cc | 2 +- gcc/gcc-rich-location.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index 19dfb3ed782..9363166152a 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) } /* Avoid spurious warnings with VLAs (c++/54583). */ - if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) + if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) suppress_warning (TYPE_SIZE (t), OPT_Wunused); /* Push these needs up to the ARRAY_TYPE so that initialization takes diff --git a/gcc/gcc-rich-location.cc b/gcc/gcc-rich-location.cc index edecf07f81e..d02a5144cc6 100644 --- a/gcc/gcc-rich-location.cc +++ b/gcc/gcc-rich-location.cc @@ -200,7 +200,7 @@ maybe_range_label_for_tree_type_mismatch::get_text (unsigned range_idx) const tree expr_type = TREE_TYPE (m_expr); tree other_type = NULL_TREE; - if (CAN_HAVE_LOCATION_P (m_other_expr)) + if (m_other_expr && EXPR_P (m_other_expr)) other_type = TREE_TYPE (m_other_expr); range_label_for_type_mismatch inner (expr_type, other_type); -- 2.30.2