Bug 32277 - indir-call-prof fails on ia64-linux-gnu
Summary: indir-call-prof fails on ia64-linux-gnu
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.3.0
: P3 normal
Target Milestone: 4.4.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-10 16:51 UTC by H.J. Lu
Modified: 2008-10-29 19:49 UTC (History)
3 users (show)

See Also:
Host:
Target: ia64-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed: 2007-06-19 21:12:30


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2007-06-10 16:51:06 UTC
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect call -> direct call.* AA transformation on insn
Comment 1 Steve Ellcey 2007-06-19 21:12:30 UTC
I proposed XFAIL'ing the test at one point but that patch was not accepted.

See http://gcc.gnu.org/ml/gcc-patches/2007-01/msg02016.html

I get the same failure on IA64 HP-UX.
Comment 2 Andreas Schwab 2008-10-08 22:59:55 UTC
This patch works for me:

Index: libgcov.c
===================================================================
--- libgcov.c	(revision 140731)
+++ libgcov.c	(working copy)
@@ -777,7 +777,11 @@ void
 __gcov_indirect_call_profiler (gcov_type* counter, gcov_type value, 
 			       void* cur_func, void* callee_func)
 {
+#ifdef __ia64__
+  if (callee_func && *(void **) cur_func == *(void **) callee_func)
+#else
   if (cur_func == callee_func)
+#endif
     __gcov_one_value_profiler_body (counter, value);
 }
 #endif
Comment 3 Steve Ellcey 2008-10-29 19:46:28 UTC
Subject: Bug 32277

Author: sje
Date: Wed Oct 29 19:46:16 2008
New Revision: 141442

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141442
Log:
	PR target/32277
	* libgcov.c ( __gcov_indirect_call_profiler): Check
	TARGET_VTABLE_USES_DESCRIPTORS.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/libgcov.c

Comment 4 Steve Ellcey 2008-10-29 19:49:35 UTC
Fixed with patch to libgcov.c