Thread View: gnu.g++.bug
1 messages
1 total messages
Started by Michael Tiemann
Tue, 28 Nov 1989 01:41
g++-1.36.1, sun4os4, unrecognizable insn
Author: Michael Tiemann
Date: Tue, 28 Nov 1989 01:41
Date: Tue, 28 Nov 1989 01:41
35 lines
1952 bytes
1952 bytes
Here was the problem:
Mon Nov 27 06:30:53 1989 Michael Tiemann (tiemann at arkesden)
* expr.c (save_noncopied_parts): Deal with case of having
`assign_stack_local' return an invalid memory reference.
Here is the fix. GCC'ers, your line numbers will vary. These line
numbers are against test release 1.36.2 from this morning.
arkesden% diff -c2 expr.c~ expr.c
*** expr.c~ Sat Oct 14 16:06:47 1989
--- expr.c Mon Nov 27 17:37:43 1989
***************
*** 2124,2129 ****
tree part_type = TREE_TYPE (part);
tree to_be_saved = build (COMPONENT_REF, part_type, lhs, part, 0);
parts = tree_cons (to_be_saved,
! build (RTL_EXPR, part_type, 0, (tree) assign_stack_local (TYPE_MODE (part_type), int_size_in_bytes (part_type))),
parts);
store_expr (TREE_PURPOSE (parts), RTL_EXPR_RTL (TREE_VALUE (parts)), 0);
--- 2124,2133 ----
tree part_type = TREE_TYPE (part);
tree to_be_saved = build (COMPONENT_REF, part_type, lhs, part, 0);
+ rtx target = assign_stack_local (TYPE_MODE (part_type),
+ int_size_in_bytes (part_type));
+ if (! memory_address_p (TYPE_MODE (part_type), XEXP (target, 0)))
+ target = change_address (target, TYPE_MODE (part_type), 0);
parts = tree_cons (to_be_saved,
! build (RTL_EXPR, part_type, 0, (tree) target),
parts);
store_expr (TREE_PURPOSE (parts), RTL_EXPR_RTL (TREE_VALUE (parts)), 0);
arkesden%
Michael
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads