From patchwork Thu Jul 10 22:27:58 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Carlini X-Patchwork-Id: 368828 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 0CF641400F5 for ; Fri, 11 Jul 2014 08:32:15 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:subject:references :in-reply-to:content-type; q=dns; s=default; b=rJ+E6Ok9MalTRUoXm 5PLS/qucBnw4MTLeIHrrJXoLDg9j1igLMyh6j/l1SVs9j/v3UYrPqEFd3IcdyNcH 1k64U0fdteAAi0elWsRqxOBZiBYgsBuc+Rn+/w35TC9QU1HfSngz7uroRfjvJ9U5 vEQBpbwKOLjE1NnoMS3Kaa+PmY= 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 :message-id:date:from:mime-version:to:subject:references :in-reply-to:content-type; s=default; bh=JS07wIvOzcPSUrekL/cufY8 Zo3U=; b=J6sGL2HvLhyH/H+gkzrcBNvYBDIFk9DxLt4gOgkFwwA3g/ml7t5NNmd 7rY+s7yqFZ9kTuQiV62TaoEj+X11+TYbuYYs7Kg8/QbDZnFfYvj23Rs/0vhdkaVR I3Qe9exAFfQrOPFhjI7/B8VYW/SZJhrYq7bma4PMgBCyha8Q9PkY= Received: (qmail 7993 invoked by alias); 10 Jul 2014 22:32:07 -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 7918 invoked by uid 89); 10 Jul 2014 22:32:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.6 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-HELO: userp1040.oracle.com Received: from userp1040.oracle.com (HELO userp1040.oracle.com) (156.151.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Thu, 10 Jul 2014 22:32:03 +0000 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6AMW1OY021908 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 10 Jul 2014 22:32:02 GMT Received: from userz7022.oracle.com (userz7022.oracle.com [156.151.31.86]) by ucsinet22.oracle.com (8.14.5+Sun/8.14.5) with ESMTP id s6AMW1R5029141 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 10 Jul 2014 22:32:01 GMT Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by userz7022.oracle.com (8.14.5+Sun/8.14.4) with ESMTP id s6AMW0E9029075; Thu, 10 Jul 2014 22:32:00 GMT Received: from [192.168.1.4] (/79.12.219.253) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 10 Jul 2014 15:31:59 -0700 Message-ID: <53BF136E.4040906@oracle.com> Date: Fri, 11 Jul 2014 00:27:58 +0200 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Jason Merrill , "gcc-patches@gcc.gnu.org" Subject: Re: [C++ Patch/RFC] Back to PR 53159 References: <53BEE7D6.4040808@oracle.com> <53BEFDBA.1060508@redhat.com> <53BF10D6.8060803@oracle.com> In-Reply-To: <53BF10D6.8060803@oracle.com> X-IsSubscribed: yes ... the below is another, very safe, option for setting LOOKUP_NO_NARROWING in flags. Paolo. Index: call.c =================================================================== --- call.c (revision 212431) +++ call.c (working copy) @@ -3586,7 +3586,8 @@ build_user_type_conversion_1 (tree totype, tree ex /* It's OK to bind a temporary for converting constructor arguments, but not in converting the return value of a conversion operator. */ - convflags = ((flags & LOOKUP_NO_TEMP_BIND) | LOOKUP_NO_CONVERSION); + convflags = ((flags & LOOKUP_NO_TEMP_BIND) | LOOKUP_NO_CONVERSION + | (flags & LOOKUP_NO_NARROWING)); flags &= ~LOOKUP_NO_TEMP_BIND; if (ctors) Index: decl.c =================================================================== --- decl.c (revision 212431) +++ decl.c (working copy) @@ -5755,6 +5755,7 @@ check_initializer (tree decl, tree init, int flags } else { + flags |= LOOKUP_NO_NARROWING; init = reshape_init (type, init, tf_warning_or_error); if (SCALAR_TYPE_P (type)) check_narrowing (type, init);