From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94077 invoked by alias); 27 Oct 2015 21:32:47 -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 94062 invoked by uid 89); 27 Oct 2015 21:32:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS 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, 27 Oct 2015 21:32:46 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id BF3BD90926 for ; Tue, 27 Oct 2015 21:32:44 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-196.phx2.redhat.com [10.3.113.196]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9RLWiVg020101; Tue, 27 Oct 2015 17:32:44 -0400 Subject: Re: [PATCH 09/10] Delay some resolution of ad-hoc locations, preserving ranges To: David Malcolm , gcc-patches@gcc.gnu.org References: <1442957171-22904-1-git-send-email-dmalcolm@redhat.com> <1445632918-29617-1-git-send-email-dmalcolm@redhat.com> <1445632918-29617-10-git-send-email-dmalcolm@redhat.com> From: Jeff Law Message-ID: <562FED7C.1060500@redhat.com> Date: Tue, 27 Oct 2015 22:15:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1445632918-29617-10-git-send-email-dmalcolm@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg02982.txt.bz2 On 10/23/2015 02:41 PM, David Malcolm wrote: > Some diagnostics e.g. -Wmaybe-uninitialized weren't showing > underlines, despite being provided with range-based data. > > Debugging showed that it the pertinent location was an > ad-hoc location with a range: > > (gdb) p /x loc > $9 = 0x8000002a > > (gdb) p line_table->location_adhoc_data_map.data[0x2a] > $10 = {locus = 6919936, src_range = {m_start = 6919936, > m_finish = 6921216}, data = 0x7ffff19a8480} > > (gdb) call inform (loc, "foo") > test.c: In function 'test': > test.c:173:10: note: foo > return result; > ^~~~~~ > > but the result from linemap_resolve_location here: > > location = linemap_resolve_location (line_table, location, > LRK_SPELLING_LOCATION, > NULL); > > was stripping away the ad-hoc location to just the locus: > > Value returned is $11 = 6919936 > > at the front of the token, thus losing the underline. > > The fix is to rework linemap_resolve_location to avoid bypassing > ad-hoc locations, so that range data is available later. > > gcc/testsuite/ChangeLog: > * gcc.dg/diagnostic-tree-expr-ranges-2.c: New file. > > libcpp/ChangeLog: > * line-map.c (linemap_position_for_loc_and_offset): Handle > ad-hoc locations. > (linemap_macro_map_loc_unwind_toward_spelling): Add line_maps > param. Handle ad-hoc locations. > (linemap_location_in_system_header_p): Pass on "set" to call to > linemap_macro_map_loc_unwind_toward_spelling. > (linemap_macro_loc_to_spelling_point): Retain ad-hoc locations. > Pass on "set" to call to > linemap_macro_map_loc_unwind_toward_spelling. > (linemap_resolve_location): Retain ad-hoc locations. Pass on > "set" to call to linemap_macro_map_loc_unwind_toward_spelling. > (linemap_unwind_toward_expansion): Pass on "set" to call to > linemap_macro_map_loc_unwind_toward_spelling. This is fine. Other than the test it seems like it'd be independent of the other patches. If so, you can commit the linmap changes independently of the rest. Jeff > ---