From patchwork Sat Nov 7 08:07:29 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 541225 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org 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 37B1F140D16 for ; Sat, 7 Nov 2015 19:07:45 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=I2cPDkUC; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type :in-reply-to; q=dns; s=default; b=oqQSNyhFQbSJWhp3UUWy2mVKL/0758 dck4cjcVkoK7G/w/4VKwZgbDA71IJzEq12lCFjflMcZSTIC0+i+Dt+9k9sLCqGt0 XNx5wdUIE6jpP5q6QbzLHHXbzGLhAfDG/1Ce+83vHNxO3tDU6uwo5BtrtGmFkknm NeJVDXuJWEork= 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:date :from:to:subject:message-id:mime-version:content-type :in-reply-to; s=default; bh=b4Lq25lflZtU9qmnSdUipgWH9lU=; b=I2cP DkUCUfT00YnhwGKOwPH/EHnCYsnZLdsaPgC01ahVdX7V2YxwlozoMXyOs4fd30Xy 1rbh7Hfj0vVvHcColmCIBPajxDwupCLnagEwVfoCcc01Jg8x/zSGCrlUTNj7g9fP 6WbsOYUowsu4JHlGVcDAEr0AoaLrbDfCOLgvuww= Received: (qmail 3759 invoked by alias); 7 Nov 2015 08:07:38 -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 3747 invoked by uid 89); 7 Nov 2015 08:07:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pa0-f50.google.com Received: from mail-pa0-f50.google.com (HELO mail-pa0-f50.google.com) (209.85.220.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Sat, 07 Nov 2015 08:07:36 +0000 Received: by pabfh17 with SMTP id fh17so145989580pab.0 for ; Sat, 07 Nov 2015 00:07:34 -0800 (PST) X-Received: by 10.68.89.197 with SMTP id bq5mr23816640pbb.1.1446883654450; Sat, 07 Nov 2015 00:07:34 -0800 (PST) Received: from bubble.grove.modra.org (CPE-58-160-163-67.gqzg1.fli.bigpond.net.au. [58.160.163.67]) by smtp.gmail.com with ESMTPSA id bn1sm4204699pad.17.2015.11.07.00.07.33 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 07 Nov 2015 00:07:33 -0800 (PST) Received: by bubble.grove.modra.org (Postfix, from userid 1000) id D94E7EA1530; Sat, 7 Nov 2015 18:37:29 +1030 (ACDT) Date: Sat, 7 Nov 2015 18:37:29 +1030 From: Alan Modra To: gcc-patches@gcc.gnu.org Subject: [PATCH 1/7] New obstack_next_free is not an lvalue Message-ID: <20151107080729.GB17177@bubble.grove.modra.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20151107080609.GA17177@bubble.grove.modra.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes New obstack.h casts obstack_next_free to (void *), resulting in it being a non-lvalue, and warnings on pointer arithmetic. gcc/ * gensupport.c (add_mnemonic_string): Make len param a size_t. (gen_mnemonic_setattr): Make "size" var a size_t. Use obstack_blank_fast to shrink obstack. Cast obstack_next_free return value. gcc/objc/ * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free return value. diff --git a/gcc/gensupport.c b/gcc/gensupport.c index 0480e17..484ead2 100644 --- a/gcc/gensupport.c +++ b/gcc/gensupport.c @@ -2253,7 +2253,7 @@ htab_eq_string (const void *s1, const void *s2) and a permanent heap copy of STR is created. */ static void -add_mnemonic_string (htab_t mnemonic_htab, const char *str, int len) +add_mnemonic_string (htab_t mnemonic_htab, const char *str, size_t len) { char *new_str; void **slot; @@ -2306,7 +2306,7 @@ gen_mnemonic_setattr (htab_t mnemonic_htab, rtx insn) for (i = 0; *cp; ) { const char *ep, *sp; - int size = 0; + size_t size = 0; while (ISSPACE (*cp)) cp++; @@ -2333,8 +2333,7 @@ gen_mnemonic_setattr (htab_t mnemonic_htab, rtx insn) { /* Don't set a value if there are more than one instruction in the string. */ - obstack_next_free (&string_obstack) = - obstack_next_free (&string_obstack) - size; + obstack_blank_fast (&string_obstack, -size); size = 0; cp = sp; @@ -2346,7 +2345,7 @@ gen_mnemonic_setattr (htab_t mnemonic_htab, rtx insn) obstack_1grow (&string_obstack, '*'); else add_mnemonic_string (mnemonic_htab, - obstack_next_free (&string_obstack) - size, + (char *) obstack_next_free (&string_obstack) - size, size); i++; } diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c index 4848021..9c577e9 100644 --- a/gcc/objc/objc-encoding.c +++ b/gcc/objc/objc-encoding.c @@ -495,13 +495,14 @@ encode_aggregate_within (tree type, int curtype, int format, int left, if (flag_next_runtime) { - if (ob_size > 0 && *(obstack_next_free (&util_obstack) - 1) == '^') + if (ob_size > 0 + && *((char *) obstack_next_free (&util_obstack) - 1) == '^') pointed_to = true; if ((format == OBJC_ENCODE_INLINE_DEFS || generating_instance_variables) && (!pointed_to || ob_size - curtype == 1 || (ob_size - curtype == 2 - && *(obstack_next_free (&util_obstack) - 2) == 'r'))) + && *((char *) obstack_next_free (&util_obstack) - 2) == 'r'))) inline_contents = true; } else @@ -512,9 +513,10 @@ encode_aggregate_within (tree type, int curtype, int format, int left, comment above applies: in that case we should avoid encoding the names of instance variables. */ - char c1 = ob_size > 1 ? *(obstack_next_free (&util_obstack) - 2) : 0; - char c0 = ob_size > 0 ? *(obstack_next_free (&util_obstack) - 1) : 0; + char c0, c1; + c1 = ob_size > 1 ? *((char *) obstack_next_free (&util_obstack) - 2) : 0; + c0 = ob_size > 0 ? *((char *) obstack_next_free (&util_obstack) - 1) : 0; if (c0 == '^' || (c1 == '^' && c0 == 'r')) pointed_to = true;