From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id EF71B3858C60 for ; Mon, 23 Oct 2023 07:48:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EF71B3858C60 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EF71B3858C60 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::12f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698047288; cv=none; b=nArLQ48e/vBeEL6b2MzK/c0OPX3PLXXnor6rXUMfSH9aWopslsPTHYM/KrzqGVvRiDyFsMZWBLBexDeV2H7H3U3luuFo8+4IjC78rb3z3Or7zL2tuNZVN4nN//B+pIzU3WvYaV1s2QsPsx6nJfAFuE6cFBWabBw18+KoXi0/Wis= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698047288; c=relaxed/simple; bh=iaoBUNJsazZwywWPthY6FSUw5cdO5zWd0JCBbjzsQJA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=eZiIgnhnc9hX6SnR4XteZIApQufFGs8tVRdE0TKFw47rpoMU1CdF1+Qfh3Tuqz/REfJUFR626NKQb7QxR8+kM4lDqtVTHXKhU/bB9hwWbTw9rlOIDlT3rEb+VYEsFTuxD348nFIR93aqg/Fh541NL+zKRUAPlKMBpugrMzD6fPw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-507c8316abcso3917042e87.1 for ; Mon, 23 Oct 2023 00:48:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698047285; x=1698652085; darn=gcc.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=aclOVaJew+FUnjgYueFMZRVaBYmU5RDlcJwsYDAU+4Y=; b=mkrJcbZ8m0gvemLf8CXHr/V8NABXAmOtSyTr5vf/TTcMs5Ku8W75en9NpE4aRLKrX3 Ny8CV8+WHHYer31rqerVUmvWH5CpruBrgKkUsZRSb0ZpE7K7gocmgLdQaN4R2lB/7lSq M75FY3RHWuLcbq1cISwIrpJ/zIbRbJEX7/msJ7uYeW5/0iIDcKPdd0JUO2v6o041tDUB iWNXSqBFjma5NXj5uc1Kk1Xdpwxm7XouSLTSTqEXkPoVJs+FKFtO8FdX9d6+5qw+mWSL HbXjAb6YtrR+WGOif3teRXMeFdQuHA4130Ki0RoMViunJ62PRrYOHcYbaUks5oZgc4Wv 7mqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698047285; x=1698652085; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aclOVaJew+FUnjgYueFMZRVaBYmU5RDlcJwsYDAU+4Y=; b=psJIz9KEWH5c0uN0mo1THax4eiWHtf8D0GPYew7YTMpG5+/i9t9ttzHi8Le1FhHjag 0rBziNVjpFl4fY+QcjT9dMtTRlPyJYgEpHiYdYneyW6Xn2m7HM+ogT6ATVdBZz1JSTsp UZp2etMD7P/5LctVie+KcW5Zl77VkJuauJaUMRw4yYE64Itx7KjT9ebQD0EBBo8RNwuI avcRExP1/51/Leximh0va3eDwS/Zjq/UkVao+vDuCdgd8psXkcj6gqiYt8RmlDxAzoZR 7cgankufR5pq6P38AJTGFIzSMj/rtlPZSaStA3nBh63Uwa/0pe4FhZ1OmxBYbNknuQK3 EZvQ== X-Gm-Message-State: AOJu0YwH6kZ95WQu9Ow5OoY9EGzqxBINIoRe/CWWE/qY7QfrfMABuuEq ywehmUipIKYsMDh74TM6uWOk+5r1oPCRqc0Tqbs= X-Google-Smtp-Source: AGHT+IE2bO81oXZZLgzJ+hn33xRAkoRmEE1o8zltnm1SnORdO01b/d93jjdKtmkmBQXppdI94AK1fp+1vTDorJTc+Ws= X-Received: by 2002:ac2:560a:0:b0:503:26bc:b08f with SMTP id v10-20020ac2560a000000b0050326bcb08fmr5672709lfd.24.1698047285343; Mon, 23 Oct 2023 00:48:05 -0700 (PDT) MIME-Version: 1.0 References: <20231022222230.1633485-1-pinskia@gmail.com> In-Reply-To: <20231022222230.1633485-1-pinskia@gmail.com> From: Richard Biener Date: Mon, 23 Oct 2023 09:45:01 +0200 Message-ID: Subject: Re: [PATCH] Use error_mark_node after error in convert To: Andrew Pinski Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Mon, Oct 23, 2023 at 12:22=E2=80=AFAM Andrew Pinski = wrote: > > While working on PR c/111903, I Noticed that > convert will convert integer_zero_node to that > type after an error instead of returning error_mark_node. > From what I can tell this was the old way of not having > error recovery since other places in this file does return > error_mark_node and the places I am replacing date from > when the file was imported into the repro (either via a gcc2 merge > or earlier). > > I also had to update the objc front-end to allow for the error_mark_node > change, I suspect you could hit the ICE without this change though. > > Bootstrapped and tested on x86_64-linux-gnu with no regressions. OK. > gcc/ChangeLog: > > * convert.cc (convert_to_pointer_1): Return error_mark_node > after an error. > (convert_to_real_1): Likewise. > (convert_to_integer_1): Likewise. > (convert_to_complex_1): Likewise. > > gcc/objc/ChangeLog: > > * objc-gnu-runtime-abi-01.cc (build_objc_method_call): Allow > for error_operand after call to build_c_cast. > * objc-next-runtime-abi-01.cc (build_objc_method_call): Likewise. > * objc-next-runtime-abi-02.cc (build_v2_build_objc_method_call): = Likewise. > --- > gcc/convert.cc | 12 ++++++------ > gcc/objc/objc-gnu-runtime-abi-01.cc | 3 +++ > gcc/objc/objc-next-runtime-abi-01.cc | 3 +++ > gcc/objc/objc-next-runtime-abi-02.cc | 3 +++ > 4 files changed, 15 insertions(+), 6 deletions(-) > > diff --git a/gcc/convert.cc b/gcc/convert.cc > index 5357609d8f0..ac6af7026a7 100644 > --- a/gcc/convert.cc > +++ b/gcc/convert.cc > @@ -96,7 +96,7 @@ convert_to_pointer_1 (tree type, tree expr, bool fold_p= ) > > default: > error ("cannot convert to a pointer type"); > - return convert_to_pointer_1 (type, integer_zero_node, fold_p); > + return error_mark_node; > } > } > > @@ -332,11 +332,11 @@ convert_to_real_1 (tree type, tree expr, bool fold_= p) > case POINTER_TYPE: > case REFERENCE_TYPE: > error ("pointer value used where a floating-point was expected"); > - return convert_to_real_1 (type, integer_zero_node, fold_p); > + return error_mark_node; > > default: > error ("aggregate value used where a floating-point was expected")= ; > - return convert_to_real_1 (type, integer_zero_node, fold_p); > + return error_mark_node; > } > } > > @@ -959,7 +959,7 @@ convert_to_integer_1 (tree type, tree expr, bool dofo= ld) > > default: > error ("aggregate value used where an integer was expected"); > - return convert (type, integer_zero_node); > + return error_mark_node; > } > } > > @@ -1053,11 +1053,11 @@ convert_to_complex_1 (tree type, tree expr, bool = fold_p) > case POINTER_TYPE: > case REFERENCE_TYPE: > error ("pointer value used where a complex was expected"); > - return convert_to_complex_1 (type, integer_zero_node, fold_p); > + return error_mark_node; > > default: > error ("aggregate value used where a complex was expected"); > - return convert_to_complex_1 (type, integer_zero_node, fold_p); > + return error_mark_node; > } > } > > diff --git a/gcc/objc/objc-gnu-runtime-abi-01.cc b/gcc/objc/objc-gnu-runt= ime-abi-01.cc > index fbf8307297a..6f45283b307 100644 > --- a/gcc/objc/objc-gnu-runtime-abi-01.cc > +++ b/gcc/objc/objc-gnu-runtime-abi-01.cc > @@ -700,6 +700,9 @@ build_objc_method_call (location_t loc, int super_fla= g, tree method_prototype, > > lookup_object =3D build_c_cast (loc, rcv_p, lookup_object); > > + if (error_operand_p (lookup_object)) > + return error_mark_node; > + > /* Use SAVE_EXPR to avoid evaluating the receiver twice. */ > lookup_object =3D save_expr (lookup_object); > > diff --git a/gcc/objc/objc-next-runtime-abi-01.cc b/gcc/objc/objc-next-ru= ntime-abi-01.cc > index 70ab5262e17..9e28976043e 100644 > --- a/gcc/objc/objc-next-runtime-abi-01.cc > +++ b/gcc/objc/objc-next-runtime-abi-01.cc > @@ -846,6 +846,9 @@ build_objc_method_call (location_t loc, int super_fla= g, tree method_prototype, > > lookup_object =3D build_c_cast (loc, rcv_p, lookup_object); > > + if (error_operand_p (lookup_object)) > + return error_mark_node; > + > /* Use SAVE_EXPR to avoid evaluating the receiver twice. */ > lookup_object =3D save_expr (lookup_object); > > diff --git a/gcc/objc/objc-next-runtime-abi-02.cc b/gcc/objc/objc-next-ru= ntime-abi-02.cc > index 6548c0078e0..723b47c9cf6 100644 > --- a/gcc/objc/objc-next-runtime-abi-02.cc > +++ b/gcc/objc/objc-next-runtime-abi-02.cc > @@ -1729,6 +1729,9 @@ build_v2_build_objc_method_call (int super, tree me= thod_prototype, > > lookup_object =3D build_c_cast (loc, rcv_p, lookup_object); > > + if (error_operand_p (lookup_object)) > + return error_mark_node; > + > /* Use SAVE_EXPR to avoid evaluating the receiver twice. */ > lookup_object =3D save_expr (lookup_object); > > -- > 2.39.3 >