mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 10:20:39 +08:00
tree-diagnostic-path.cc: properly handle ad-hoc wrappers of UNKNOWN_LOCATION
In the reproducer for PR analyzer/58237 I noticed that some events that were missing locations were also missing text; for example event 3 here: | 15 | while (fgets(buf, 10, fp) != NULL) | | ~ | | | | | (2) following 'false' branch... | 'f1': event 3 | |cc1: | The root cause is that the path_summary-printing code doesn't consider ad-hoc locations when looking for reserved locations, and so fails to detect an unknown location for the case where an unknown location has been wrapped into an ad-hoc location to record a block. This patch fixes the issue by using get_pure_location, thus looking through ad-hoc wrappers, improving the result to: | 15 | while (fgets(buf, 10, fp) != NULL) | | ~ | | | | | (2) following 'false' branch... | 'f1': event 3 | |cc1: | (3): ...to here | gcc/ChangeLog: * tree-diagnostic-path.cc (path_summary::event_range::print): When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers using get_pure_location.
This commit is contained in:
parent
697251b7a1
commit
03dc3f2623
@ -1,3 +1,9 @@
|
||||
2020-01-14 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
* tree-diagnostic-path.cc (path_summary::event_range::print):
|
||||
When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
|
||||
using get_pure_location.
|
||||
|
||||
2020-01-15 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/93262
|
||||
|
@ -172,7 +172,7 @@ class path_summary
|
||||
In particular the label for the event won't get printed.
|
||||
Fail more gracefully in this case by showing the event
|
||||
index and text, at no particular location. */
|
||||
if (initial_loc <= BUILTINS_LOCATION)
|
||||
if (get_pure_location (initial_loc) <= BUILTINS_LOCATION)
|
||||
{
|
||||
for (unsigned i = m_start_idx; i <= m_end_idx; i++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user