diff options
author | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-02-17 10:26:44 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-02-17 10:26:44 +0000 |
commit | a11759a38c42fd52cc46ebfeeec8f5bc98e9f1ed (patch) | |
tree | 7d919ed17c492831b64a4b11a496099612b303e7 /gcc/emit-rtl.c | |
parent | 93f83bd58d196e279df4669628b54dd46b89f036 (diff) | |
download | gcc-a11759a38c42fd52cc46ebfeeec8f5bc98e9f1ed.zip gcc-a11759a38c42fd52cc46ebfeeec8f5bc98e9f1ed.tar.gz gcc-a11759a38c42fd52cc46ebfeeec8f5bc98e9f1ed.tar.bz2 |
rtl.h (force_line_numbers, [...]): Declare.
* rtl.h (force_line_numbers, restore_line_number_status): Declare.
* emit-rtl.c (force_line_numbers, restore_line_number_status):
New functions.
* stmt.c (struct nesting): Replace seenlabel with line_number_status.
(expand_start_case): Adjust to this change.
(check_seenlabel): New function.
(pushcase, pushcase_range, expand_endcase): Use it.
From-SVN: r18031
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 739ca53..3da217c 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3457,3 +3457,25 @@ init_emit_once (line_numbers) pic_offset_table_rtx = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM); #endif } + +/* Query and clear/ restore no_line_numbers. This is used by the + switch / case handling in stmt.c to give proper line numbers in + warnings about unreachable code. */ + +int +force_line_numbers () +{ + int old = no_line_numbers; + + no_line_numbers = 0; + if (old) + force_next_line_note (); + return old; +} + +void +restore_line_number_status (old_value) + int old_value; +{ + no_line_numbers = old_value; +} |