From patchwork Sat Feb 16 01:08:42 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Carlini X-Patchwork-Id: 220912 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]) by ozlabs.org (Postfix) with SMTP id 1027F2C007A for ; Sat, 16 Feb 2013 12:09:08 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1361581749; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:Message-ID:Date:From:User-Agent:MIME-Version: To:CC:Subject:References:In-Reply-To:Content-Type:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=7jw6cS75ejsd5WVmUxR+ID9ZSKY=; b=CUU0f51euIF3WMj9ujGvb3itKHIklvEZN6EnErr7TEFdns8hMe9kq9CHd6MtYn ljCzzWMYcaRp5o6ro8HF7KSflwcC3NajjWjBOlQ0q94kS9V7ZgFiWvXQ48W7vQkk KCoCz9y13a/l+4lBdBO//ZY9UmQTFpWY4tAkkhlcUyZxE= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=oHwCR9krv1Shwe75bCHCv80O1HnuireF5KPinmzKtyq9ukgGj2qpMUKMNhpdFm jpeZ3vVodsYhimhTTUpwl9HvNj0gxM0JgoYkLyjatmWgKzDNZtbpH67viRlqKMGe Tmj0h7lteoCmpCf4SbWVnJXh9p3tk7QtezM6njs+4ucYU=; Received: (qmail 15427 invoked by alias); 16 Feb 2013 01:09:00 -0000 Received: (qmail 15406 invoked by uid 22791); 16 Feb 2013 01:08:59 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=AWL, BAYES_00, FSL_NEW_HELO_USER, KHOP_THREADED, RCVD_IN_HOSTKARMA_NO, RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from userp1040.oracle.com (HELO userp1040.oracle.com) (156.151.31.81) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 16 Feb 2013 01:08:46 +0000 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by userp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r1G18j0r019336 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 16 Feb 2013 01:08:46 GMT Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r1G18i49005992 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 16 Feb 2013 01:08:44 GMT Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57]) by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id r1G18iS1006967; Fri, 15 Feb 2013 19:08:44 -0600 Received: from [192.168.1.4] (/79.53.235.251) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 15 Feb 2013 17:08:43 -0800 Message-ID: <511EDC1A.8090004@oracle.com> Date: Sat, 16 Feb 2013 02:08:42 +0100 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130105 Thunderbird/17.0.2 MIME-Version: 1.0 To: Jason Merrill CC: "gcc-patches@gcc.gnu.org" Subject: Re: [C++ Patch / RFC] PR 51242 References: <50B38DEC.8090004@oracle.com> <511E72FA.4070202@redhat.com> In-Reply-To: <511E72FA.4070202@redhat.com> X-IsSubscribed: yes 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 On 02/15/2013 06:40 PM, Jason Merrill wrote: > The patch is OK. To deal with the warning, I would suggest putting > the constrained type somewhere other than ENUM_UNDERLYING_TYPE that's > shared between enums with fixed and non-fixed underlying types; having > it in ENUM_UNDERLYING_TYPE isn't really correct anyway. Ok, thanks. Then I committed the below and I'm keeping the PR open for the warning. Thanks again, Paolo. /////////////////////// /cp 2013-02-15 Jonathan Wakely Paolo Carlini PR c++/51242 * decl2.c (grokbitfield): Allow scoped enumeration types. /testsuite 2013-02-15 Jonathan Wakely Paolo Carlini PR c++/51242 * g++.dg/cpp0x/enum23.C: New. Index: cp/decl2.c =================================================================== --- cp/decl2.c (revision 196095) +++ cp/decl2.c (working copy) @@ -1028,7 +1028,7 @@ grokbitfield (const cp_declarator *declarator, if (TREE_CODE (value) == VOID_TYPE) return void_type_node; - if (!INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (value)) + if (!INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (value)) && (POINTER_TYPE_P (value) || !dependent_type_p (TREE_TYPE (value)))) { Index: testsuite/g++.dg/cpp0x/enum23.C =================================================================== --- testsuite/g++.dg/cpp0x/enum23.C (revision 0) +++ testsuite/g++.dg/cpp0x/enum23.C (working copy) @@ -0,0 +1,9 @@ +// PR c++/51242 +// { dg-do compile { target c++11 } } + +enum class MyEnum { A = 1 }; + +struct MyClass +{ + MyEnum Field1 : 3; // { dg-bogus "warning: 'MyClass::Field1' is too small" "" { xfail *-*-* } } +};