aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/dwarf2out.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc5f1a3..09b82ce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -26,6 +26,9 @@
2005-04-11 Geoffrey Keating <geoffk@apple.com>
+ * dwarf2out.c (output_line_info): Don't try to dereference
+ a NULL current_function_decl.
+
* config/t-slibgcc-darwin: Don't put shared libraries in
directories other than $(slibdir).
* config/rs6000/darwin.h: Find -m64 libgcc under the name the
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index a7b2b86..aebefd4 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -7662,7 +7662,7 @@ output_line_info (void)
long line_delta;
unsigned long current_file;
unsigned long function;
- struct function *cfun = DECL_STRUCT_FUNCTION (current_function_decl);
+ struct function *cfun;
ASM_GENERATE_INTERNAL_LABEL (l1, LINE_NUMBER_BEGIN_LABEL, 0);
ASM_GENERATE_INTERNAL_LABEL (l2, LINE_NUMBER_END_LABEL, 0);
@@ -7732,6 +7732,11 @@ output_line_info (void)
a series of state machine operations. */
current_file = 1;
current_line = 1;
+
+ if (current_function_decl)
+ cfun = DECL_STRUCT_FUNCTION (current_function_decl);
+ else
+ cfun = NULL;
if (last_text_section == in_unlikely_executed_text
|| (last_text_section == in_named
&& last_text_section_name == cfun->unlikely_text_section_name))