aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-07-14 23:18:15 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-07-14 21:18:15 +0000
commit9ae130f857c95929cd8af833b66f526827a7f701 (patch)
treeb05a5187c5f66174f8834e8f396ca621a418a89d /gcc
parente07d4821a6f45e995f275980874c8ac6050cc548 (diff)
downloadgcc-9ae130f857c95929cd8af833b66f526827a7f701.zip
gcc-9ae130f857c95929cd8af833b66f526827a7f701.tar.gz
gcc-9ae130f857c95929cd8af833b66f526827a7f701.tar.bz2
cfglayout.c (locator_file): Break out from ....
* cfglayout.c (locator_file): Break out from .... (insn_file): ... here. (locator_line): Break out from .... (insn_line): ... here. * rtl.h (locator_file, locator_line): Declare. (final_start_function): Set proper line/file info. From-SVN: r69359
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/cfglayout.c24
-rw-r--r--gcc/final.c5
-rw-r--r--gcc/rtl.h2
4 files changed, 32 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ecd072f..7d63ed9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+Mon Jul 14 23:14:28 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * cfglayout.c (locator_file): Break out from ....
+ (insn_file): ... here.
+ (locator_line): Break out from ....
+ (insn_line): ... here.
+ * rtl.h (locator_file, locator_line): Declare.
+ (final_start_function): Set proper line/file info.
+
2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 7172eaa..3839089 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -435,13 +435,12 @@ insn_scope (rtx insn)
return VARRAY_TREE (block_locators_blocks, min);
}
-/* Return line number of the statement that produced this insn. */
+/* Return line number of the statement specified by the locator. */
int
-insn_line (rtx insn)
+locator_line (int loc)
{
int max = VARRAY_ACTIVE_SIZE (line_locators_locs);
int min = 0;
- int loc = INSN_LOCATOR (insn);
if (!max || !loc)
return 0;
@@ -463,13 +462,19 @@ insn_line (rtx insn)
return VARRAY_INT (line_locators_lines, min);
}
-/* Return source file of the statement that produced this insn. */
+/* Return line number of the statement that produced this insn. */
+int
+insn_line (rtx insn)
+{
+ return locator_line (INSN_LOCATOR (insn));
+}
+
+/* Return source file of the statement specified by LOC. */
const char *
-insn_file (rtx insn)
+locator_file (int loc)
{
int max = VARRAY_ACTIVE_SIZE (file_locators_locs);
int min = 0;
- int loc = INSN_LOCATOR (insn);
if (!max || !loc)
return NULL;
@@ -491,6 +496,13 @@ insn_file (rtx insn)
return VARRAY_CHAR_PTR (file_locators_files, min);
}
+/* Return source file of the statement that produced this insn. */
+const char *
+insn_file (rtx insn)
+{
+ return locator_file (INSN_LOCATOR (insn));
+}
+
/* Rebuild all the NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes based
on the scope tree and the newly reordered instructions. */
diff --git a/gcc/final.c b/gcc/final.c
index e3ded5d..cfc730c 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1349,8 +1349,9 @@ final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file,
}
#endif
- last_linenum = 0;
- last_filename = 0;
+ last_filename = locator_file (prologue_locator);
+ last_linenum = locator_line (prologue_locator);
+
high_block_linenum = high_function_linenum = last_linenum;
(*debug_hooks->begin_prologue) (last_linenum, last_filename);
diff --git a/gcc/rtl.h b/gcc/rtl.h
index bc9d5ee..9d3b0dc 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1544,6 +1544,8 @@ extern rtx prev_cc0_setter (rtx);
extern tree choose_inner_scope (tree, tree);
extern int insn_line (rtx);
extern const char * insn_file (rtx);
+extern int locator_line (int);
+extern const char * locator_file (int);
extern int prologue_locator, epilogue_locator;
/* In jump.c */