From patchwork Sat Jun 9 10:19:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janus Weil X-Patchwork-Id: 927120 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-479388-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gcc.gnu.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="SOXPJxSV"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 412wJc2Y72z9s2t for ; Sat, 9 Jun 2018 20:20:13 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:from:date:message-id:subject:to:content-type; q= dns; s=default; b=UAioU8K3n0LsROuB6uIA7Q5EGlLWo2CAKwzZpZl0lsDuQp w9wo1Q+FFKpQ3qBJ/qRkJo9MS/ByiWenvTQQ4eF5p89u0G81DwILv4l4FXvFZTWX 2FxTf1Kswqi8QKHc+NZTPBuhpSFmPlzPs22pXm5ODrZ4oznn+OiEn3J0bA8XI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:from:date:message-id:subject:to:content-type; s= default; bh=i/Pb90SV2SZlhuc8Pw5Jysa5o9s=; b=SOXPJxSVzsuaMeoZ8wNV TjSMepjiuiT++hQmE55/Pq9JPeExY6CYVZN6PgEHqh4+x1xbJDNtoAFJRE7ydI6v wv9b/K9XPFLbZKB6NRzvCjGOPMQah435tQQ63OFHto2Lu870vyjf0sv1DGKdCJIQ aZPGQTPfhN3c7HQDhpptiBY= Received: (qmail 104266 invoked by alias); 9 Jun 2018 10:20:03 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 104217 invoked by uid 89); 9 Jun 2018 10:20:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.6 required=5.0 tests=AWL, BAYES_00, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=Janus, HX-HELO:sk:mail-yb, Hx-languages-length:2290 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-yb0-f193.google.com Received: from mail-yb0-f193.google.com (HELO mail-yb0-f193.google.com) (209.85.213.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 09 Jun 2018 10:19:59 +0000 Received: by mail-yb0-f193.google.com with SMTP id x128-v6so4966466ybg.3; Sat, 09 Jun 2018 03:19:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=rBD/mxyTRU0kQvFhA2OV/Wx/VWOtnWBx/4x9eVaKytw=; b=TMcbYeBE3vv+MJu0qj8MLM+7row1lOvnx7b68wxEfyMvpJQj9cKt2bebyHzQlRLTl9 eRmhvkDaP7aM7xPDfJ8D6dd8jO9dZ7UsFHm+4LjB6XwaqWwHtbw+ekEu8KLLVPWQ70Mt RO3iiSXTHz3KUpPaI7wAO2EkZ7hWzaVSutsqcauuq7Eng9eryVO5HkLihykm1FIVQUqM m0zmovj4IuY9Iu+w0uBT8ENlSrYn1y1UOi1DDkMgud3+MBSACU5pi1XMPwpuOmt7do09 PvuypCgs9b8lGP0erkQM5I/iidei6N6Z9elmAj6RLL6xhjX05x+W95MvUNARYtBUaGwu IIrg== X-Gm-Message-State: APt69E0QfLwVJjG+smm4+SffyZq78wo2rPy4mXhzVZjZLrwDy5y2/xXT DHQgZmsT7Sas165wJQh9+ET3jSp2NxD7bhtYWTTymg== X-Google-Smtp-Source: ADUXVKIfqJQ85ai0xLu2UQGGze6K1pXfaRfwJhPnCZ92Wp+esqsQjUQvJHYlKjDxLp31tAsHtLfpCYgtln1fwi6mFWE= X-Received: by 2002:a25:c502:: with SMTP id v2-v6mr5628848ybe.330.1528539597842; Sat, 09 Jun 2018 03:19:57 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a81:71d4:0:0:0:0:0 with HTTP; Sat, 9 Jun 2018 03:19:57 -0700 (PDT) From: Janus Weil Date: Sat, 9 Jun 2018 12:19:57 +0200 Message-ID: Subject: [Patch, Fortran] PR 85088: improve diagnostic for bad INTENT declaration To: gfortran , gcc-patches Hi all, attached is a small patch that approves some diagnostics for INTENT declarations. It also takes care of a TODO note in decl.c. I had regtested a previous version of the patch without problems and will do another run with this one before checking in. Ok for trunk? Cheers, Janus 2018-06-09 Janus Weil PR fortran/85088 * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec' and remove a TODO note. 2018-06-09 Janus Weil PR fortran/85088 * gfortran.dg/intent_decl_1.f90: New test case. Index: gcc/fortran/decl.c =================================================================== --- gcc/fortran/decl.c (revision 261358) +++ gcc/fortran/decl.c (working copy) @@ -4716,9 +4716,10 @@ match_attr_spec (void) { /* Modifiers that can exist in a type statement. */ enum - { GFC_DECL_BEGIN = 0, - DECL_ALLOCATABLE = GFC_DECL_BEGIN, DECL_DIMENSION, DECL_EXTERNAL, - DECL_IN, DECL_OUT, DECL_INOUT, DECL_INTRINSIC, DECL_OPTIONAL, + { GFC_DECL_BEGIN = 0, DECL_ALLOCATABLE = GFC_DECL_BEGIN, + DECL_IN = INTENT_IN, DECL_OUT = INTENT_OUT, DECL_INOUT = INTENT_INOUT, + DECL_DIMENSION, DECL_EXTERNAL, + DECL_INTRINSIC, DECL_OPTIONAL, DECL_PARAMETER, DECL_POINTER, DECL_PROTECTED, DECL_PRIVATE, DECL_STATIC, DECL_AUTOMATIC, DECL_PUBLIC, DECL_SAVE, DECL_TARGET, DECL_VALUE, DECL_VOLATILE, @@ -4846,13 +4847,12 @@ match_attr_spec (void) if (match_string_p ("nt")) { /* Matched "intent". */ - /* TODO: Call match_intent_spec from here. */ - if (gfc_match (" ( in out )") == MATCH_YES) - d = DECL_INOUT; - else if (gfc_match (" ( in )") == MATCH_YES) - d = DECL_IN; - else if (gfc_match (" ( out )") == MATCH_YES) - d = DECL_OUT; + d = match_intent_spec (); + if (d == INTENT_UNKNOWN) + { + m = MATCH_ERROR; + goto cleanup; + } } } else if (ch == 'r')