diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2022-06-13 10:03:36 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2022-06-13 13:35:33 +0200 |
commit | cb1ecf3819f19a4fc35468010b66b5c1a7b21ee8 (patch) | |
tree | 82d4d3db3c65eb4cf3e013d3b0d6072945a170ec /gcc/gimple.h | |
parent | 6303eee4b92e8509409503a3abebde8bd50f0f05 (diff) | |
download | gcc-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.h | 3 |
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; } |