diff options
author | Nathan Sidwell <nathan@acm.org> | 2011-11-07 18:14:46 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2011-11-07 18:14:46 +0000 |
commit | 5366b18679f7ead0a02c29759d4bb455f52114ce (patch) | |
tree | 66b4b76e062cf2c04e721c2d80f9445608ebb3a7 /gcc/testsuite/gcc.misc-tests/gcov-14.c | |
parent | 74155a6f37c3cabdf3875a560876c4b9fa3288f9 (diff) | |
download | gcc-5366b18679f7ead0a02c29759d4bb455f52114ce.zip gcc-5366b18679f7ead0a02c29759d4bb455f52114ce.tar.gz gcc-5366b18679f7ead0a02c29759d4bb455f52114ce.tar.bz2 |
libgcov.c (struct gcov_fn_buffer): New struct.
libgcc/
* libgcov.c (struct gcov_fn_buffer): New struct.
(buffer_fn_data): New helper.
(gcov_exit): Rework for new gcov data structures.
gcc/
* gcov.c (object_summary): Replace with ...
(object_runs): ... this.
(process_file): Remove functions with no data.
(generate_results): Ignore files with no lines.
(release_function): New helper, broken out of ...
(release_structures): ... here. Use it.
(read_count_file): Adjust for new data file format.
(output_lines): Use object_runs.
* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
(struct gcov_ctr_info): Move definition.
(struct gcov_fn_info): Add key field, use gcov_ctr_info for
trailing array.
(struct gcov_info): Add merge function array, remove mask and
counts. Trailing array is array of pointers to function info.
* coverage.c (struct function_list): Replace counter numbers with
counter arrays. Add fndecl field. GTYify.
(counts_entry): Remove chain workspace.
(functions_head): GTYify.
(prg_n_ctrs): Remove.
(fn_v_ctrs): New.
(tree_ctr_tables): Remove.
(read_counts_file): Cope with blank entries and expect program
summaries before functions. Don't warn on missing entries.
(coverage_counter_alloc): Allocate individual function arrays.
(tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
for individual function arrays.
(coverage_end_function): GTYify function list object. Finalize
function's counter arrays.
(build_var): New. Create a counter-related variable with
appropriate linkage.
(build_fn_info_type): Adjust for new runtime structure.
(build_fn_info_value): Rename to ...
(build_fn_info): ... here. Build new format data.
(build_ctr_info_type, build_ctr_info_value): Remove.
(build_info_type): New. Build new format data structure.
(build_info): Adjust for new format data.
(create_coverage): Likewise.
* gcov-dump.c (tag_function): Recognize placeholders.
gcc/testsuite/
* gcc.dg/profile-dir-1.c: Adjust final scan.
* gcc.dg/profile-dir-2.c: Adjust final scan.
* gcc.dg/profile-dir-3.c: Adjust final scan.
* gcc.misc-tests/gcov.exp: Adjust regexp.
* gcc.misc-tests/gcov-12.c: New.
* gcc.misc-tests/gcov-13.c: New.
* gcc.misc-tests/gcovpart-13b.c: New.
* gcc.misc-tests/gcov-14.c: New.
From-SVN: r181105
Diffstat (limited to 'gcc/testsuite/gcc.misc-tests/gcov-14.c')
-rw-r--r-- | gcc/testsuite/gcc.misc-tests/gcov-14.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-14.c b/gcc/testsuite/gcc.misc-tests/gcov-14.c new file mode 100644 index 0000000..0eaf284 --- /dev/null +++ b/gcc/testsuite/gcc.misc-tests/gcov-14.c @@ -0,0 +1,24 @@ +/* Test gcov extern inline. */ + +/* { dg-options "-O2 -fprofile-arcs -ftest-coverage" } */ +/* { dg-require-weak "" } */ +/* { dg-do run { target native } } */ + +extern int __attribute__ ((weak)) Foo (); + +extern __inline int Foo () +{ + return 0; /* count(-) */ +} + +int (* __attribute__ ((noinline)) Bar ()) () +{ + return Foo; /* count(1) */ +} + +int main () +{ + return Bar () != 0; /* count(1) */ +} + +/* { dg-final { run-gcov { -a gcov-14.c } } } */ |