From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27078 invoked by alias); 26 Sep 2011 19:33:21 -0000 Received: (qmail 27045 invoked by uid 22791); 26 Sep 2011 19:33:19 -0000 X-SWARE-Spam-Status: No, hits=-6.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 26 Sep 2011 19:33:02 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p8QJWa8q020035 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 26 Sep 2011 15:32:36 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p8QJ8QYY002467; Mon, 26 Sep 2011 15:08:27 -0400 Received: from [10.3.113.3] ([10.3.113.3]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p8QJ8NVi027736; Mon, 26 Sep 2011 15:08:23 -0400 Message-ID: <4E80CDA7.10106@redhat.com> Date: Mon, 26 Sep 2011 20:39:00 -0000 From: Jason Merrill User-Agent: Mozilla/5.0 (X11; Linux i686; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2 MIME-Version: 1.0 To: Dodji Seketeli CC: gcc-patches@gcc.gnu.org, tromey@redhat.com, gdr@integrable-solutions.net, joseph@codesourcery.com, burnus@net-b.de, charlet@act-europe.fr, bonzini@gnu.org Subject: Re: [PATCH 2/7] Generate virtual locations for tokens References: <1291979498-1604-1-git-send-email-dodji@redhat.com> <4E6E65B2.2060909@redhat.com> <4E711F42.80802@redhat.com> <4E77ACFE.2080805@redhat.com> <4E7B673D.9050306@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 X-SW-Source: 2011-09/txt/msg01641.txt.bz2 On 09/26/2011 10:21 AM, Dodji Seketeli wrote: >>> > > + /* The cpp_reader the macro comes from. */ >>> > > + cpp_reader *pfile; >> > >> > This seems to only be used to decide whether or not to increment >> > location_ptr. Rather than base that decision on going all the way >> > back to the CPP_OPTION, let's just pass a flag to >> > macro_arg_token_iter_init and use that to decide whether or not to set >> > location_ptr. > Conceptually, location_ptr is always set, barring one exception: when > the token pointing to by the iterator is empty. Yes, I was suggesting that you change that, since it's only used by _get_location, which can get the location from the pointer instead. > So I fail to see what would be made unreachable here. You're right, I was misreading the code. > + if (location) > + { > + if (virt_loc == 0) > + virt_loc = result->src_loc; > + *location = virt_loc; > + } > + > + out: > + if (location != NULL) > + { > + if (!CPP_OPTION (pfile, track_macro_expansion) > + && can_set > + && pfile->context->c.macro != NULL) > + /* We are in a macro expansion context, are not tracking > + virtual location, but were asked to report the location > + of the expansion point of the macro being expanded. */ > + *location = pfile->invocation_location; > + > + *location = maybe_adjust_loc_for_trad_cpp (pfile, *location); > + } The out: label needs to be before the first if. Jason