Commit 457ff6a1 by Jakub Jelinek

re PR debug/41411 (ICE: mem_loc_descriptor, at dwarf2out.c:11616)

	* dwarf2out.c (loc_list_plus_const): Only define if
	DWARF2_DEBUGGING_INFO.
	(address_of_int_loc_descriptor): Likewise.

	PR debug/41411
	* dwarf2out.c (mem_loc_descriptor): Handle HIGH.

From-SVN: r152059
parent be123439
2009-09-23 Uros Bizjak <ubizjak@gmail.com> 2009-09-23 Jakub Jelinek <jakub@redhat.com>
Jan Hubicka <jh@suse.cz>
* dwarf2out.c (loc_list_plus_const): Only define if
DWARF2_DEBUGGING_INFO.
(address_of_int_loc_descriptor): Likewise.
PR debug/41411
* dwarf2out.c (mem_loc_descriptor): Handle HIGH.
2009-09-23 Uros Bizjak <ubizjak@gmail.com>
PR c/39779 PR c/39779
* c-typeck.c (build_binary_op) <short_shift>: Check that integer * c-typeck.c (build_binary_op) <short_shift>: Check that integer
......
...@@ -4657,6 +4657,7 @@ loc_descr_plus_const (dw_loc_descr_ref *list_head, HOST_WIDE_INT offset) ...@@ -4657,6 +4657,7 @@ loc_descr_plus_const (dw_loc_descr_ref *list_head, HOST_WIDE_INT offset)
} }
} }
#ifdef DWARF2_DEBUGGING_INFO
/* Add a constant OFFSET to a location list. */ /* Add a constant OFFSET to a location list. */
static void static void
...@@ -4666,6 +4667,7 @@ loc_list_plus_const (dw_loc_list_ref list_head, HOST_WIDE_INT offset) ...@@ -4666,6 +4667,7 @@ loc_list_plus_const (dw_loc_list_ref list_head, HOST_WIDE_INT offset)
for (d = list_head; d != NULL; d = d->dw_loc_next) for (d = list_head; d != NULL; d = d->dw_loc_next)
loc_descr_plus_const (&d->expr, offset); loc_descr_plus_const (&d->expr, offset);
} }
#endif
/* Return the size of a location descriptor. */ /* Return the size of a location descriptor. */
...@@ -10896,7 +10898,9 @@ int_loc_descriptor (HOST_WIDE_INT i) ...@@ -10896,7 +10898,9 @@ int_loc_descriptor (HOST_WIDE_INT i)
return new_loc_descr (op, i, 0); return new_loc_descr (op, i, 0);
} }
#endif
#ifdef DWARF2_DEBUGGING_INFO
/* Return loc description representing "address" of integer value. /* Return loc description representing "address" of integer value.
This can appear only as toplevel expression. */ This can appear only as toplevel expression. */
...@@ -10957,9 +10961,6 @@ address_of_int_loc_descriptor (int size, HOST_WIDE_INT i) ...@@ -10957,9 +10961,6 @@ address_of_int_loc_descriptor (int size, HOST_WIDE_INT i)
loc_result->dw_loc_oprnd2.v.val_int = i; loc_result->dw_loc_oprnd2.v.val_int = i;
return loc_result; return loc_result;
} }
#endif
#ifdef DWARF2_DEBUGGING_INFO
/* Return a location descriptor that designates a base+offset location. */ /* Return a location descriptor that designates a base+offset location. */
...@@ -11675,6 +11676,7 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -11675,6 +11676,7 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
case PARITY: case PARITY:
case ASM_OPERANDS: case ASM_OPERANDS:
case UNSPEC: case UNSPEC:
case HIGH:
/* If delegitimize_address couldn't do anything with the UNSPEC, we /* If delegitimize_address couldn't do anything with the UNSPEC, we
can't express it in the debug info. This can happen e.g. with some can't express it in the debug info. This can happen e.g. with some
TLS UNSPECs. */ TLS UNSPECs. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment