public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/6875: IA64 compiler crash when -O3
@ 2003-01-01 18:36 Nathanael Nerode
0 siblings, 0 replies; 6+ messages in thread
From: Nathanael Nerode @ 2003-01-01 18:36 UTC (permalink / raw)
To: vmakarov; +Cc: gcc-prs
The following reply was made to PR c/6875; it has been noted by GNATS.
From: Nathanael Nerode <neroden@twcny.rr.com>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, vmakarov@gcc.gnu.org,
vmakarov@redhat.com, gcc-bugs@gcc.gnu.org
Cc:
Subject: Re: c/6875: IA64 compiler crash when -O3
Date: Wed, 1 Jan 2003 13:33:55 -0500
I see there was a patch for this, which appears not to have gone in.
What's the status of this bug? Why is it in feedback still (7 months later)?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c/6875: IA64 compiler crash when -O3
@ 2003-04-15 16:18 ehrhardt
0 siblings, 0 replies; 6+ messages in thread
From: ehrhardt @ 2003-04-15 16:18 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, vmakarov, vmakarov
Synopsis: IA64 compiler crash when -O3
State-Changed-From-To: feedback->closed
State-Changed-By: cae
State-Changed-When: Tue Apr 15 16:18:13 2003
State-Changed-Why:
This is essentially a duplicate of PR 7507 which is fixed with this
patch on all active branches.
2003-01-21 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
PR opt/7507
* calls.c (fix_unsafe_tree): Split out from ...
(expand_call): ... here. Use it on the function address too.
regards Christian
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6875
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c/6875: IA64 compiler crash when -O3
@ 2002-05-30 16:16 vmakarov
0 siblings, 0 replies; 6+ messages in thread
From: vmakarov @ 2002-05-30 16:16 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, vmakarov, vmakarov
Synopsis: IA64 compiler crash when -O3
State-Changed-From-To: analyzed->feedback
State-Changed-By: vmakarov
State-Changed-When: Thu May 30 16:12:00 2002
State-Changed-Why:
I don't know well the font-end. But I see the two ways of the
problem solution:
o making another copy of tree of the call.
o clearing RTL code for tree label declarations in the call.
I prefer the 2nd solution as less expensive one.
Here the patch is. I've tried regression tests and bootstrap on
ia64/x86 for the patch (everithin looks ok).
Vlad
2002-05-30 Vladimir Makarov <vmakarov@redhat.com>
* langhooks-def.h (lhd_tree_inlining_walk_tree): New function
prototype.
(LANG_HOOKS_TREE_INLINING_INITIALIZER): Add
LANG_HOOKS_TREE_INLINING_WALK_TREE.
* langhooks.h (lang_hooks_for_tree_inlining): New member
`walk_tree'.
* langhooks.c (lhd_tree_inlining_walk_tree): New function.
* c-tree.h (c_walk_tree): New function prototype.
* c-objc-common.c (c_walk_tree): New function.
* c-lang.c (LANG_HOOKS_TREE_INLINING_WALK_TREE): Redefine it.
* cp/cp-tree.h (cp_walk_tree): New function prototype.
* cp/tree.c (cp_walk_tree): New function.
* calls.c (clear_label_decls): New function.
(expand_call): Clear labels for the second pass.
Index: c-lang.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-lang.c,v
retrieving revision 1.74.6.2
diff -d -c -p -r1.74.6.2 c-lang.c
*** c-lang.c 23 May 2002 17:57:26 -0000 1.74.6.2
--- c-lang.c 30 May 2002 19:40:58 -0000
*************** static void c_init_options PARAMS ((void
*** 55,60 ****
--- 55,62 ----
#undef LANG_HOOKS_SET_YYDEBUG
#define LANG_HOOKS_SET_YYDEBUG c_set_yydebug
+ #undef LANG_HOOKS_TREE_INLINING_WALK_TREE
+ #define LANG_HOOKS_TREE_INLINING_WALK_TREE c_walk_tree
#undef LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN
#define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \
c_cannot_inline_tree_fn
Index: c-objc-common.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-objc-common.c,v
retrieving revision 1.3.2.2
diff -d -c -p -r1.3.2.2 c-objc-common.c
*** c-objc-common.c 28 Mar 2002 18:49:58 -0000 1.3.2.2
--- c-objc-common.c 30 May 2002 19:40:58 -0000
*************** c_missing_noreturn_ok_p (decl)
*** 51,56 ****
--- 51,68 ----
return flag_hosted && MAIN_NAME_P (DECL_ASSEMBLER_NAME (decl));
}
+
+ /* The function just calls walk_tree. */
+ tree
+ c_walk_tree (tp, func, data, htab)
+ tree *tp;
+ walk_tree_fn func;
+ void *data;
+ void *htab;
+ {
+ return walk_tree (tp, func, data, htab);
+ }
+
/* We want to inline `extern inline' functions even if this would
violate inlining limits. Some glibc and linux constructs depend on
such functions always being inlined when optimizing. */
Index: c-tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-tree.h,v
retrieving revision 1.81.2.2
diff -d -c -p -r1.81.2.2 c-tree.h
*** c-tree.h 28 Mar 2002 18:49:58 -0000 1.81.2.2
--- c-tree.h 30 May 2002 19:40:58 -0000
*************** extern void c_expand_decl_stmt
*** 221,226 ****
--- 221,228 ----
/* in c-objc-common.c */
+ extern tree c_walk_tree PARAMS ((tree *, walk_tree_fn,
+ void *, void *));
extern int c_disregard_inline_limits PARAMS ((tree));
extern int c_cannot_inline_tree_fn PARAMS ((tree *));
extern const char *c_objc_common_init PARAMS ((const char *));
Index: calls.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/calls.c,v
retrieving revision 1.221.2.2
diff -d -c -p -r1.221.2.2 calls.c
*** calls.c 4 Apr 2002 23:28:47 -0000 1.221.2.2
--- calls.c 30 May 2002 19:40:59 -0000
*************** Software Foundation, 59 Temple Place - S
*** 27,32 ****
--- 27,33 ----
#include "expr.h"
#include "libfuncs.h"
#include "function.h"
+ #include "langhooks.h"
#include "regs.h"
#include "toplev.h"
#include "output.h"
*************** static int flags_from_decl_or_type PAR
*** 219,226 ****
static rtx try_to_integrate PARAMS ((tree, tree, rtx,
int, tree, rtx));
static int check_sibcall_argument_overlap_1 PARAMS ((rtx));
! static int check_sibcall_argument_overlap PARAMS ((rtx, struct arg_data *));
!
static int combine_pending_stack_adjustment_and_call
PARAMS ((int, struct args_size *, int));
--- 220,229 ----
static rtx try_to_integrate PARAMS ((tree, tree, rtx,
int, tree, rtx));
static int check_sibcall_argument_overlap_1 PARAMS ((rtx));
! static int check_sibcall_argument_overlap PARAMS ((rtx,
! struct arg_data *));
! static tree clear_label_decls PARAMS ((tree *, int *,
! void *));
static int combine_pending_stack_adjustment_and_call
PARAMS ((int, struct args_size *, int));
*************** check_sibcall_argument_overlap (insn, ar
*** 2062,2067 ****
--- 2065,2090 ----
return insn != NULL_RTX;
}
+ /* The following function is called by tree inline hook walk_tree to
+ clear rtl code for the labels. */
+
+ static tree
+ clear_label_decls (tp, walk_subtrees, data)
+ tree *tp;
+ int *walk_subtrees;
+ void *data ATTRIBUTE_UNUSED;
+ {
+ *walk_subtrees = 1;
+ if (TREE_CODE (*tp) == LABEL_DECL)
+ {
+ SET_DECL_RTL (*tp, NULL);
+ *walk_subtrees = 0;
+ }
+
+ /* Keep iterating. */
+ return NULL_TREE;
+ }
+
/* Generate all the code for a function call
and return an rtx for its value.
Store the value in TARGET (specified as an rtx) if convenient.
*************** expand_call (exp, target, ignore)
*** 2659,2664 ****
--- 2682,2694 ----
able to get rid of them. */
expand_start_target_temps ();
}
+
+ if (pass != 0)
+ /* EXP may contain label declaration whose LABEL_CODE will be
+ not defined in the normal call code (2nd pass) unless we
+ clear its RTL code generated for the sibling call. */
+ (*lang_hooks.tree_inlining.walk_tree) (&exp, clear_label_decls,
+ NULL, NULL);
/* Don't let pending stack adjusts add up to too much.
Also, do all pending adjustments now if there is any chance
Index: langhooks-def.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/langhooks-def.h,v
retrieving revision 1.8.10.2
diff -d -c -p -r1.8.10.2 langhooks-def.h
*** langhooks-def.h 23 May 2002 17:57:27 -0000 1.8.10.2
--- langhooks-def.h 30 May 2002 19:40:59 -0000
*************** extern void lhd_print_tree_nothing PARAM
*** 50,55 ****
--- 50,57 ----
extern void lhd_set_yydebug PARAMS ((int));
/* Declarations of default tree inlining hooks. */
+ tree lhd_tree_inlining_walk_tree PARAMS ((tree *, walk_tree_fn,
+ void *, void *));
tree lhd_tree_inlining_walk_subtrees PARAMS ((tree *, int *,
walk_tree_fn,
void *, void *));
*************** tree lhd_tree_inlining_convert_parm_for_
*** 87,92 ****
--- 89,95 ----
#define LANG_HOOKS_SET_YYDEBUG lhd_set_yydebug
/* Tree inlining hooks. */
+ #define LANG_HOOKS_TREE_INLINING_WALK_TREE lhd_tree_inlining_walk_tree
#define LANG_HOOKS_TREE_INLINING_WALK_SUBTREES lhd_tree_inlining_walk_subtrees
#define LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN \
lhd_tree_inlining_cannot_inline_tree_fn
*************** tree lhd_tree_inlining_convert_parm_for_
*** 110,115 ****
--- 113,119 ----
lhd_tree_inlining_convert_parm_for_inlining
#define LANG_HOOKS_TREE_INLINING_INITIALIZER { \
+ LANG_HOOKS_TREE_INLINING_WALK_TREE, \
LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, \
LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, \
LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, \
Index: langhooks.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/langhooks.c,v
retrieving revision 1.16.2.2
diff -d -c -p -r1.16.2.2 langhooks.c
*** langhooks.c 21 Mar 2002 23:12:21 -0000 1.16.2.2
--- langhooks.c 30 May 2002 19:40:59 -0000
*************** hook_get_alias_set_0 (t)
*** 126,131 ****
--- 126,143 ----
return 0;
}
+ /* This is the default function for lang_hooks.tree_inlining.walk_tree. */
+
+ tree
+ lhd_tree_inlining_walk_tree (tp, func, data, htab)
+ tree *tp ATTRIBUTE_UNUSED;
+ walk_tree_fn func ATTRIBUTE_UNUSED;
+ void *data ATTRIBUTE_UNUSED;
+ void *htab ATTRIBUTE_UNUSED;
+ {
+ return NULL_TREE;
+ }
+
/* lang_hooks.tree_inlining.walk_subtrees is called by walk_tree()
after handling common cases, but before walking code-specific
sub-trees. If this hook is overridden for a language, it should
Index: langhooks.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/langhooks.h,v
retrieving revision 1.15.8.2
diff -d -c -p -r1.15.8.2 langhooks.h
*** langhooks.h 23 May 2002 17:57:28 -0000 1.15.8.2
--- langhooks.h 30 May 2002 19:40:59 -0000
*************** typedef void (*lang_print_tree_hook) PAR
*** 29,34 ****
--- 29,39 ----
struct lang_hooks_for_tree_inlining
{
+ union tree_node *(*walk_tree) PARAMS ((union tree_node **,
+ union tree_node *(*)
+ (union tree_node **,
+ int *, void *),
+ void *, void *));
union tree_node *(*walk_subtrees) PARAMS ((union tree_node **, int *,
union tree_node *(*)
(union tree_node **,
Index: cp/cp-tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/cp-tree.h,v
retrieving revision 1.681.2.12
diff -d -c -p -r1.681.2.12 cp-tree.h
*** cp/cp-tree.h 23 May 2002 17:57:42 -0000 1.681.2.12
--- cp/cp-tree.h 30 May 2002 19:40:59 -0000
*************** extern int char_type_p
*** 4280,4285 ****
--- 4280,4287 ----
extern void verify_stmt_tree PARAMS ((tree));
extern tree find_tree PARAMS ((tree, tree));
extern linkage_kind decl_linkage PARAMS ((tree));
+ extern tree cp_walk_tree PARAMS ((tree *, walk_tree_fn,
+ void *, void *));
extern tree cp_walk_subtrees PARAMS ((tree*, int*, walk_tree_fn,
void*, void*));
extern int cp_cannot_inline_tree_fn PARAMS ((tree*));
Index: cp/tree.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/tree.c,v
retrieving revision 1.268.2.4
diff -d -c -p -r1.268.2.4 tree.c
*** cp/tree.c 16 May 2002 02:09:15 -0000 1.268.2.4
--- cp/tree.c 30 May 2002 19:41:00 -0000
*************** make_ptrmem_cst (type, member)
*** 2077,2082 ****
--- 2077,2094 ----
return ptrmem_cst;
}
+ /* The function just calls walk_tree. */
+
+ tree
+ cp_walk_tree (tp, func, data, htab)
+ tree *tp;
+ walk_tree_fn func;
+ void *data;
+ void *htab;
+ {
+ return walk_tree (tp, func, data, htab);
+ }
+
/* Apply FUNC to all language-specific sub-trees of TP in a pre-order
traversal. Called from walk_tree(). */
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6875
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c/6875: IA64 compiler crash when -O3
@ 2002-05-30 16:12 vmakarov
0 siblings, 0 replies; 6+ messages in thread
From: vmakarov @ 2002-05-30 16:12 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, vmakarov, vmakarov
Synopsis: IA64 compiler crash when -O3
State-Changed-From-To: open->analyzed
State-Changed-By: vmakarov
State-Changed-When: Thu May 30 16:10:13 2002
State-Changed-Why:
The problem occurs because tree inliner creates a label in
expand_call_inline (tp, walk_subtrees, data)
{
...
/* Return statements in the function body will be replaced by jumps
to the RET_LABEL. */
id->ret_label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
...
}
The label is expanded twice in expand_call for normal call and sibling
call. The corresponding RTL CODE_LABEL is generated only once for sibling call
because of the standard code:
rtx
label_rtx (label)
tree label;
{
if (TREE_CODE (label) != LABEL_DECL)
abort ();
if (!DECL_RTL_SET_P (label))
SET_DECL_RTL (label, gen_label_rtx ());
return DECL_RTL (label);
}
So we have usage of the RTL label in two code sequences and the
CODE_LABEL (29) only definitio in sibling call. Here the code for
sibling code:
(note 11 0 13 0x20000000006e6c80 NOTE_INSN_BLOCK_BEG)
(insn 13 11 14 (set (reg:SI 343)
(const_int 1 [0x1])) -1 (nil)
(expr_list:REG_EQUAL (const_int 1 [0x1])
(nil)))
(insn 14 13 15 (set (mem/f:SI (addressof:DI (reg/v:SI 342) 341 0x20000000006edfb0) [2 x+0 S4 A32])
(reg:SI 343)) -1 (nil)
(nil))
(note 15 14 16 NOTE_INSN_DELETED)
(note 16 15 18 NOTE_INSN_DELETED)
(insn 18 16 20 (set (reg:DI 120 out0)
(addressof:DI (reg/v:SI 342) 341 0x20000000006edfb0)) -1 (nil)
(nil))
(insn 20 18 21 (set (reg:DI 345)
(reg:DI 1 r1)) -1 (nil)
(nil))
(call_insn 21 20 23 (parallel[
(set (reg:SI 8 r8)
(call (mem:DI (symbol_ref/v:DI ("nothing")) [0 S8 A64])
(const_int 1 [0x1])))
(use (unspec[
(reg:DI 1 r1)
] 9))
(clobber (reg:DI 320 b0))
] ) -1 (nil)
(nil)
(expr_list (use (reg:DI 120 out0))
(nil)))
(insn 23 21 24 (set (reg:DI 1 r1)
(reg:DI 345)) -1 (nil)
(nil))
(insn 24 23 25 (set (reg:DI 346)
(plus:DI (reg:DI 1 r1)
(symbol_ref/v:DI ("fi")))) -1 (nil)
(nil))
(insn 25 24 26 (set (reg/v/f:DI 344)
(mem/u:DI (reg:DI 346) [0 S8 A64])) -1 (nil)
(nil))
(jump_insn 26 25 27 (set (pc)
(label_ref 29)) -1 (nil)
(nil))
(barrier 27 26 28)
(note 28 27 29 0x20000000006e6c80 NOTE_INSN_BLOCK_END)
(code_label 29 28 31 2 "" "" [0 uses])
^^^^^^^^^^^^^^^^^^^
(insn 31 29 33 (set (reg:SI 120 out0)
(const_int 2 [0x2])) -1 (nil)
(nil))
(insn 33 31 35 (set (reg:DI 345)
(reg:DI 1 r1)) -1 (nil)
(nil))
(insn 35 33 37 (set (reg:DI 347)
(mem:DI (reg/v/f:DI 344) [0 S8 A64])) -1 (nil)
(nil))
(insn 37 35 38 (set (reg:DI 348)
(reg/v/f:DI 344)) -1 (nil)
(nil))
(insn 38 37 40 (set (reg/f:DI 349)
(plus:DI (reg/v/f:DI 344)
(const_int 8 [0x8]))) -1 (nil)
(nil))
(insn 40 38 41 (set (reg:DI 1 r1)
(mem:DI (reg/f:DI 349) [0 S8 A64])) -1 (nil)
(nil))
(call_insn 41 40 43 (parallel[
(set (reg:SI 8 r8)
(call (mem:DI (reg:DI 347) [0 S8 A64])
(const_int 1 [0x1])))
(use (unspec[
(reg:DI 1 r1)
] 9))
(clobber (reg:DI 320 b0))
] ) -1 (nil)
(nil)
(expr_list (use (reg:SI 120 out0))
(nil)))
(insn 43 41 45 (set (reg:DI 1 r1)
(reg:DI 345)) -1 (nil)
(nil))
(insn 45 43 0 (set (reg:SI 350)
(reg:SI 8 r8)) -1 (nil)
(nil))
Here the code for normal call is:
(note 50 0 52 0x20000000006e6c80 NOTE_INSN_BLOCK_BEG)
(insn 52 50 53 (set (reg:SI 351)
(const_int 1 [0x1])) -1 (nil)
(expr_list:REG_EQUAL (const_int 1 [0x1])
(nil)))
(insn 53 52 54 (set (mem/f:SI (addressof:DI (reg/v:SI 342) 341 0x20000000006edfb0) [2 x+0 S4 A32])
(reg:SI 351)) -1 (nil)
(nil))
(note 54 53 55 NOTE_INSN_DELETED)
(note 55 54 57 NOTE_INSN_DELETED)
(insn 57 55 59 (set (reg:DI 120 out0)
(addressof:DI (reg/v:SI 342) 341 0x20000000006edfb0)) -1 (nil)
(nil))
(insn 59 57 60 (set (reg:DI 345)
(reg:DI 1 r1)) -1 (nil)
(nil))
(call_insn 60 59 62 (parallel[
(set (reg:SI 8 r8)
(call (mem:DI (symbol_ref/v:DI ("nothing")) [0 S8 A64])
(const_int 1 [0x1])))
(use (unspec[
(reg:DI 1 r1)
] 9))
(clobber (reg:DI 320 b0))
] ) -1 (nil)
(nil)
(expr_list (use (reg:DI 120 out0))
(nil)))
(insn 62 60 63 (set (reg:DI 1 r1)
(reg:DI 345)) -1 (nil)
(nil))
(insn 63 62 64 (set (reg:DI 352)
(plus:DI (reg:DI 1 r1)
(symbol_ref/v:DI ("fi")))) -1 (nil)
(nil))
(insn 64 63 65 (set (reg/v/f:DI 344)
(mem/u:DI (reg:DI 352) [0 S8 A64])) -1 (nil)
(nil))
(jump_insn 65 64 66 (set (pc)
(label_ref 29)) -1 (nil)
(nil))
^^^^^^^^^^^^^^^^^^^^ There is no corresponding label_code.
(barrier 66 65 67)
(note 67 66 69 0x20000000006e6c80 NOTE_INSN_BLOCK_END)
(insn 69 67 71 (set (reg:SI 120 out0)
(const_int 2 [0x2])) -1 (nil)
(nil))
(insn 71 69 73 (set (reg:DI 345)
(reg:DI 1 r1)) -1 (nil)
(nil))
(insn 73 71 75 (set (reg:DI 353)
(mem:DI (reg/v/f:DI 344) [0 S8 A64])) -1 (nil)
(nil))
(insn 75 73 76 (set (reg:DI 354)
(reg/v/f:DI 344)) -1 (nil)
(nil))
(insn 76 75 78 (set (reg/f:DI 355)
(plus:DI (reg/v/f:DI 344)
(const_int 8 [0x8]))) -1 (nil)
(nil))
(insn 78 76 79 (set (reg:DI 1 r1)
(mem:DI (reg/f:DI 355) [0 S8 A64])) -1 (nil)
(nil))
(call_insn 79 78 81 (parallel[
(set (reg:SI 8 r8)
(call (mem:DI (reg:DI 353) [0 S8 A64])
(const_int 1 [0x1])))
(use (unspec[
(reg:DI 1 r1)
] 9))
(clobber (reg:DI 320 b0))
] ) -1 (nil)
(nil)
(expr_list (use (reg:SI 120 out0))
(nil)))
(insn 81 79 83 (set (reg:DI 1 r1)
(reg:DI 345)) -1 (nil)
(nil))
(insn 83 81 0 (set (reg:SI 356)
(reg:SI 8 r8)) -1 (nil)
(nil))
After that the normal call code is choosen in sibling optimization
and the compiler crashes in cfg.c
Program received signal SIGSEGV, Segmentation fault.
cached_make_edge (edge_cache=0x0, src=0x600000000010a670, dst=0x0, flags=0)
at /home/vmakarov/build/gcc-31-branch/gcc/gcc/cfg.c:307
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6875
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c/6875: IA64 compiler crash when -O3
@ 2002-05-30 16:10 vmakarov
0 siblings, 0 replies; 6+ messages in thread
From: vmakarov @ 2002-05-30 16:10 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, vmakarov, vmakarov
Synopsis: IA64 compiler crash when -O3
Responsible-Changed-From-To: unassigned->vmakarov
Responsible-Changed-By: vmakarov
Responsible-Changed-When: Thu May 30 16:08:19 2002
Responsible-Changed-Why:
I am working on this.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6875
^ permalink raw reply [flat|nested] 6+ messages in thread
* c/6875: IA64 compiler crash when -O3
@ 2002-05-30 16:08 vmakarov
0 siblings, 0 replies; 6+ messages in thread
From: vmakarov @ 2002-05-30 16:08 UTC (permalink / raw)
To: gcc-gnats
>Number: 6875
>Category: c
>Synopsis: IA64 compiler crash when -O3
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu May 30 16:06:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Vladimir Makarov
>Release: 3.1 and the main line
>Organization:
>Environment:
ia64-unknown-linux
>Description:
Hello, IA64 compiler (the 3.1 branch and the main line) crashes on
the following program with -O3
extern void foo (int);
extern int something(int);
extern int nothing(int *);
int fi (int i) { return something(i); }
typedef int (*pfi)(int i);
pfi bar(int x) { nothing(&x); return &fi; }
main ()
{
foo (bar (1)(2));
}
b.i: In function `main':
b.i:11: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
Compile the test with -O3
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2003-04-15 16:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-01 18:36 c/6875: IA64 compiler crash when -O3 Nathanael Nerode
-- strict thread matches above, loose matches on Subject: below --
2003-04-15 16:18 ehrhardt
2002-05-30 16:16 vmakarov
2002-05-30 16:12 vmakarov
2002-05-30 16:10 vmakarov
2002-05-30 16:08 vmakarov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).