summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/profile.c13
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 14d5066fdf0..2c5b123a4bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2011-01-10 Jan Hubicka <jh@suse.cz>
+ PR lto/45375
+ * profile.c (read_profile_edge_counts): Ignore profile inconistency
+ when correcting profile.
+
+2011-01-10 Jan Hubicka <jh@suse.cz>
+
PR lto/46083
* lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
DECL_FINI_PRIORITY.
diff --git a/gcc/profile.c b/gcc/profile.c
index bde8b4677f9..2334101ba8c 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -409,8 +409,17 @@ read_profile_edge_counts (gcov_type *exec_counts)
e->count = exec_counts[exec_counts_pos++];
if (e->count > profile_info->sum_max)
{
- error ("corrupted profile info: edge from %i to %i exceeds maximal count",
- bb->index, e->dest->index);
+ if (flag_profile_correction)
+ {
+ static bool informed = 0;
+ if (!informed)
+ inform (input_location,
+ "corrupted profile info: edge count exceeds maximal count");
+ informed = 1;
+ }
+ else
+ error ("corrupted profile info: edge from %i to %i exceeds maximal count",
+ bb->index, e->dest->index);
}
}
else