aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2022-06-13 10:03:36 +0200
committerEric Botcazou <ebotcazou@adacore.com>2022-06-13 13:35:33 +0200
commitcb1ecf3819f19a4fc35468010b66b5c1a7b21ee8 (patch)
tree82d4d3db3c65eb4cf3e013d3b0d6072945a170ec /gcc/gimple.h
parent6303eee4b92e8509409503a3abebde8bd50f0f05 (diff)
downloadgcc-cb1ecf3819f19a4fc35468010b66b5c1a7b21ee8.zip
gcc-cb1ecf3819f19a4fc35468010b66b5c1a7b21ee8.tar.gz
gcc-cb1ecf3819f19a4fc35468010b66b5c1a7b21ee8.tar.bz2
Do not erase warning data in gimple_set_location
gimple_set_location is mostly invoked on newly built GIMPLE statements, so their location is UNKNOWN_LOCATION and setting it will clobber the warning data of the passed location, if any. gcc/ * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr. * gimple.h (gimple_set_location): Do not copy warning data from the previous location when it is UNKNOWN_LOCATION. * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}. gcc/testsuite/ * c-c++-common/nonnull-1.c: Remove XFAIL for C++.
Diffstat (limited to 'gcc/gimple.h')
-rw-r--r--gcc/gimple.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimple.h b/gcc/gimple.h
index 6b1e89a..870629c 100644
--- a/gcc/gimple.h
+++ b/gcc/gimple.h
@@ -1913,7 +1913,8 @@ static inline void
gimple_set_location (gimple *g, location_t location)
{
/* Copy the no-warning data to the statement location. */
- copy_warning (location, g->location);
+ if (g->location != UNKNOWN_LOCATION)
+ copy_warning (location, g->location);
g->location = location;
}