https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104532

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-02-15
                 CC|                            |cltang at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r12-5835-g0ab29cf0bb68960c1f87405f14b4fb2109254e2f
I guess the
                  if (c_parser_next_token_is (parser, CPP_DEREF))
                    t = build_simple_mem_ref (t);
is wrong, CPP_DEREF handling elsewhere calls
          expr = convert_lvalue_to_rvalue (expr_loc, expr, true, false);
and uses
          expr.value = build_component_ref (op_loc,
                                            build_indirect_ref (op_loc,
                                                                expr.value,
                                                                RO_ARROW),
                                            ident, comp_loc);
So I think we should do that convert_lvalue_to_rvalue and build_indirect_ref
instead of build_simple_mem_ref.

Reply via email to