From patchwork Wed Jan 31 15:53:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 25714 Received: (qmail 31015 invoked by alias); 31 Jan 2018 15:54:07 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 30973 invoked by uid 89); 31 Jan 2018 15:54:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:static. X-HELO: mail-wm0-f50.google.com Received: from mail-wm0-f50.google.com (HELO mail-wm0-f50.google.com) (74.125.82.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 31 Jan 2018 15:54:05 +0000 Received: by mail-wm0-f50.google.com with SMTP id r78so8996251wme.0 for ; Wed, 31 Jan 2018 07:54:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=oLHu2DLBsaxo1VfurW9fWMxi/fpN0utEJk0T2WRm5kc=; b=b97kaSrhKmFZlnRAHeXagqWU0Tl7QKIi2oA2vMyIPaoxD9iXexTppNP2whNxTmiL2I CvLZnTiqFD49AxIbBMGthqOjvC0IrwPvHnki9Ol7g7S8NAtiTowAVjBgXbDg5tGAfkrO 3DlNAo1b8NO/uHbL8EHAE1mgrRaJPl3zfcXDwgZM7VtVRd6f7WHS0uSLBl3NJ6Y+eR2o c37sXdhmzyfWfhxZOFeQ1PtMs2i3T43pMuqE1kfuvlU2kWqVy7vAfzB9fYWD1led8a+F OYuMjUCmXtuJ+gQ1Z3c17IojEOW4WXZzZ1qwLu01/TZMaYmi3P8Oahzx3l+yt8lvy3zs wUiQ== X-Gm-Message-State: AKwxyten2mFZjRFUTMDCsQlGa0k2c5NxEJ42WP2wiUrmd+TRUQnBQ5AG cFL2MwNrWGCp2lSQC3unN9s+ng== X-Google-Smtp-Source: AH8x226AOOGP4rPLtKDhRugEOxPy1kIvbEQnEUFI0FHoewCYIWZ17Yxexj4bX9yo7cG2nyAHyrgO2A== X-Received: by 10.28.93.83 with SMTP id r80mr26840515wmb.154.1517414043012; Wed, 31 Jan 2018 07:54:03 -0800 (PST) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id 62sm49289wml.24.2018.01.31.07.54.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 31 Jan 2018 07:54:02 -0800 (PST) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH] Treat OP_F77_UNDETERMINED_ARGLIST as OP_FUNCALL Date: Wed, 31 Jan 2018 15:53:59 +0000 Message-Id: <1517414039-5249-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes When I debug some fortran expression parsing, I got (gdb) set debug expression 1 (gdb) p intvla(5,5,5) Dump of expression @ 0x205fa80, before conversion to prefix form: Language fortran, 19 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_VAR_VALUE 40 (............... 1 31863232 .1.............. .... 14 BINOP_REM 5 ................ 15 OP_LONG 38 &............... 16 OP_F77_UNDETERMINED_ARGLIST 48 0............... 17 BINOP_MUL 3 ................ 18 OP_F77_UNDETERMINED_ARGLIST 48 0............... Dump of expression @ 0x205fa80, after conversion to prefix form: Expression: `Invalid expression ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This patch fixes this problem by handling OP_F77_UNDETERMINED_ARGLIST in the same way as handling OP_FUNCALL. With this patch applied, the output looks better, (gdb) p intvla (5,5,5) Dump of expression @ 0x2d75590, before conversion to prefix form: Language fortran, 19 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_VAR_VALUE 40 (............... .... 16 OP_F77_UNDETERMINED_ARGLIST 48 0............... 17 BINOP_MUL 3 ................ 18 OP_F77_UNDETERMINED_ARGLIST 48 0............... Dump of expression @ 0x2d75590, after conversion to prefix form: Expression: `vla_primitives::intvla (5, 5, 5)' Language fortran, 19 elements, 16 bytes each. 0 OP_F77_UNDETERMINED_ARGLIST Number of args: 3 3 OP_VAR_VALUE Block @0x297e1c0, symbol @0x297cd50 (intvla) 7 OP_LONG Type @0x2976900 (int), value 5 (0x5) 11 OP_LONG Type @0x2976900 (int), value 5 (0x5) 15 OP_LONG Type @0x2976900 (int), value 5 (0x5) gdb: 2018-01-23 Yao Qi * expprint.c (print_subexp_standard): Handle OP_F77_UNDETERMINED_ARGLIST. (dump_subexp_body_standard): Likewise. --- gdb/expprint.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdb/expprint.c b/gdb/expprint.c index ac5ae0f..9d1884f 100644 --- a/gdb/expprint.c +++ b/gdb/expprint.c @@ -186,6 +186,7 @@ print_subexp_standard (struct expression *exp, int *pos, return; case OP_FUNCALL: + case OP_F77_UNDETERMINED_ARGLIST: (*pos) += 2; nargs = longest_to_int (exp->elts[pc + 1].longconst); print_subexp (exp, pos, stream, PREC_SUFFIX); @@ -923,6 +924,7 @@ dump_subexp_body_standard (struct expression *exp, elt += 2; break; case OP_FUNCALL: + case OP_F77_UNDETERMINED_ARGLIST: { int i, nargs; @@ -1123,7 +1125,6 @@ dump_subexp_body_standard (struct expression *exp, default: case OP_NULL: case MULTI_SUBSCRIPT: - case OP_F77_UNDETERMINED_ARGLIST: case OP_COMPLEX: case OP_BOOL: case OP_M2_STRING: