From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14577 invoked by alias); 12 May 2015 13:50:23 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 14562 invoked by uid 89); 12 May 2015 13:50:23 -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,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 12 May 2015 13:50:22 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t4CDoKBm008477 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 12 May 2015 09:50:20 -0400 Received: from [10.10.116.40] ([10.10.116.40]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t4CDoJfZ018089; Tue, 12 May 2015 09:50:19 -0400 Message-ID: <55520517.1020507@redhat.com> Date: Tue, 12 May 2015 13:51:00 -0000 From: Jason Merrill User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Jan Hubicka CC: gcc-patches@gcc.gnu.org Subject: Re: False ODR violation positives on anonymous namespace types References: <20150511142810.GA6584@kam.mff.cuni.cz> <5550E3D2.2080408@redhat.com> <20150511174607.GB59663@kam.mff.cuni.cz> <5550ECB5.8000607@redhat.com> <20150511180509.GB22960@kam.mff.cuni.cz> <55511D40.1010808@redhat.com> <20150511213949.GB35526@kam.mff.cuni.cz> In-Reply-To: <20150511213949.GB35526@kam.mff.cuni.cz> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2015-05/txt/msg01082.txt.bz2 On 05/11/2015 04:39 PM, Jan Hubicka wrote: > What happens in LTO is that lto-symtab decide to merge the two declarations of > foo. At this time it has chance to output the warning. For that it needs to > be able to work out that these declarations are having different types, but > because LTO merge canonical types on structural basis, types_compatible_p > (long, int) will return true. OK. So I guess it makes sense to check built-in integer types as well, but compound types should be compared structurally. Jason