> On Wed, Jan 15, 2014 at 8:39 PM, Jan Hubicka <hubi...@ucw.cz> wrote: > >> > >> In that case should we call gcov_error when IN_LIBGCOV? One > >> possibility would be to simply make gcov_nonruntime_assert be defined > >> as if (!EXPR) gcov_error in the IN_LIBGCOV case. But I think what you > >> wanted here was to reduce libgcov bloat by removing calls altogether, > >> which this wouldn't solve. But if we want to call gcov_error in some > >> cases, I think I need to add another macro that will either do > >> gcc_assert when !IN_LIBGCOV and "if (!EXPR) gcov_error" when > >> IN_LIBGCOV. Is that what you had in mind? > > > > I think for errors that can be triggered by data corruption, we ought to > > produce resonable error messages in both IN_LIBGCOV or for offline tools. > > Just unwound sequence if(...) gcov_error seems fine to me in this case, > > but we may also have assert like wrapper. > > I see we do not provide gcov_error outside libgcov, we probably ought to map > > it to fatal_error in GCC binary. > > > > thanks, > > Honza > > Ok, here is the new patch. Bootstrapped and tested on > x86_64-unknown-linux-gnu. Ok for trunk? > > Thanks, Teresa > > 2014-01-16 Teresa Johnson <tejohn...@google.com> > > * gcov-io.c (gcov_position): Use gcov_nonruntime_assert. > (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code. > (gcov_rewrite): Use gcov_nonruntime_assert. > (gcov_open): Ditto. > (gcov_write_words): Ditto. > (gcov_write_length): Ditto. > (gcov_read_words): Use gcov_nonruntime_assert, and remove > gcc_assert from IN_LIBGCOV code. > (gcov_read_summary): Use gcov_error to flag profile corruption. > (gcov_sync): Use gcov_nonruntime_assert. > (gcov_seek): Remove gcc_assert from IN_LIBGCOV code. > (gcov_histo_index): Use gcov_nonruntime_assert. > (static void gcov_histogram_merge): Ditto. > (compute_working_sets): Ditto. > * gcov-io.h (gcov_nonruntime_assert): Define. > (gcov_error): Define for !IN_LIBGCOV
OK, thanks! Honza