Skip to content
Snippets Groups Projects
  1. May 03, 2024
  2. Oct 24, 2024
    • David Malcolm's avatar
      Use unique_ptr in more places in pretty_printer/diagnostics [PR116613] · bf43fe6a
      David Malcolm authored
      
      My forthcoming patches for PR other/116613 make much more use of
      cloning of pretty_printers than before, so it makes sense as a
      preliminary patch for the result of pretty_printer::clone to be a
      std::unique_ptr, rather than add more manual uses of "delete".
      
      On doing so, I noticed various other places where naked new/delete is
      used for run-time configuration of diagnostics:
      * the output format (text vs SARIF)
      * client data hooks
      * the option manager
      * the URLifier
      
      Hence this patch also makes use of std::unique_ptr and ::make_unique for
      managing such client policy classes, and also for diagnostic_buffer's
      per-format implementations.
      
      Unfortunately we can't directly include <memory> in our internal headers
      but instead any of our TUs that make use of std::unique_ptr must #define
      INCLUDE_MEMORY before including system.h.
      
      Hence the bulk of this patch is taken up with adding a define of
      INCLUDE_MEMORY to hundreds of source files: everything that includes
      diagnostic.h or pretty-print.h (and thus anything transitively such as
      includers of lto-wrapper.h, c-tree.h, cp-tree.h and rtl-ssa.h).
      
      Thanks to Gaius Mulley for the parts of the patch that regenerated the
      m2 files.
      
      gcc/ada/ChangeLog:
      	PR other/116613
      	* gcc-interface/misc.cc: Add #define INCLUDE_MEMORY
      	* gcc-interface/trans.cc: Likewise.
      	* gcc-interface/utils.cc: Likewise.
      
      gcc/analyzer/ChangeLog:
      	PR other/116613
      	* analyzer-logging.cc: Add #define INCLUDE_MEMORY
      	(logger::logger): Update for m_pp becoming a unique_ptr.
      	(logger::~logger): Likewise.
      	(logger::log_va_partial): Likewise.
      	(logger::end_log_line): Likewise.
      	* analyzer-logging.h (logger::get_printer): Likewise.
      	(logger::m_pp): Convert to a unique_ptr.
      	* analyzer.cc (make_label_text): Use
      	diagnostic_context::clone_printer and use unique_ptr.
      	(make_label_text_n): Likewise.
      	* bar-chart.cc: Add #define INCLUDE_MEMORY
      	* pending-diagnostic.cc (evdesc::event_desc::formatted_print):
      	Use diagnostic_context::clone_printer and use unique_ptr.
      	* sm-malloc.cc (sufficiently_similar_p): Likewise.
      	* supergraph.cc (supergraph::dump_dot_to_file): Likewise.
      
      gcc/c-family/ChangeLog:
      	PR other/116613
      	* c-ada-spec.cc: Add #define INCLUDE_MEMORY.
      	* c-attribs.cc: Likewise.
      	* c-common.cc: Likewise.
      	* c-format.cc: Likewise.
      	* c-gimplify.cc: Likewise.
      	* c-indentation.cc: Likewise.
      	* c-opts.cc: Likewise.
      	* c-pch.cc: Likewise.
      	* c-pragma.cc: Likewise.
      	* c-pretty-print.cc: Likewise.  Add #include "make-unique.h".
      	(c_pretty_printer::clone): Use std::unique_ptr and ::make_unique.
      	* c-pretty-print.h (c_pretty_printer::clone): Use std::unique_ptr.
      	* c-type-mismatch.cc: Add #define INCLUDE_MEMORY.
      	* c-warn.cc: Likewise.
      
      gcc/c/ChangeLog:
      	PR other/116613
      	* c-aux-info.cc: Add #define INCLUDE_MEMORY.
      	* c-convert.cc: Likewise.
      	* c-errors.cc: Likewise.
      	* c-fold.cc: Likewise.
      	* c-lang.cc: Likewise.
      	* c-objc-common.cc: Likewise.
      	(pp_markup::element_quoted_type::print_type): Use unique_ptr.
      	* c-typeck.cc: Add #define INCLUDE_MEMORY.
      	* gimple-parser.cc: Likewise.
      
      gcc/cp/ChangeLog:
      	PR other/116613
      	* call.cc: Add #define INCLUDE_MEMORY.
      	* class.cc: Likewise.
      	* constexpr.cc: Likewise.
      	* constraint.cc: Likewise.
      	* contracts.cc: Likewise.
      	* coroutines.cc: Likewise.
      	* cp-gimplify.cc: Likewise.
      	* cp-lang.cc: Likewise.
      	* cp-objcp-common.cc: Likewise.
      	* cp-ubsan.cc: Likewise.
      	* cvt.cc: Likewise.
      	* cxx-pretty-print.cc: Likewise.  Add #include "cp-tree.h".
      	(cxx_pretty_printer::clone): Use std::unique_ptr and
      	::make_unique.
      	* cxx-pretty-print.h (cxx_pretty_printer::clone): Use
      	std::unique_ptr.
      	* decl2.cc: Add #define INCLUDE_MEMORY.
      	* dump.cc: Likewise.
      	* except.cc: Likewise.
      	* expr.cc: Likewise.
      	* friend.cc: Likewise.
      	* init.cc: Likewise.
      	* lambda.cc: Likewise.
      	* logic.cc: Likewise.
      	* mangle.cc: Likewise.
      	* method.cc: Likewise.
      	* optimize.cc: Likewise.
      	* pt.cc: Likewise.
      	* ptree.cc: Likewise.
      	* rtti.cc: Likewise.
      	* search.cc: Likewise.
      	* semantics.cc: Likewise.
      	* tree.cc: Likewise.
      	* typeck.cc: Likewise.
      	* typeck2.cc: Likewise.
      	* vtable-class-hierarchy.cc: Likewise.
      
      gcc/d/ChangeLog:
      	PR other/116613
      	* d-attribs.cc: Add #define INCLUDE_MEMORY.
      	* d-builtins.cc: Likewise.
      	* d-codegen.cc: Likewise.
      	* d-convert.cc: Likewise.
      	* d-diagnostic.cc: Likewise.
      	* d-frontend.cc: Likewise.
      	* d-lang.cc: Likewise.
      	* d-longdouble.cc: Likewise.
      	* d-target.cc: Likewise.
      	* decl.cc: Likewise.
      	* expr.cc: Likewise.
      	* intrinsics.cc: Likewise.
      	* modules.cc: Likewise.
      	* toir.cc: Likewise.
      	* typeinfo.cc: Likewise.
      	* types.cc: Likewise.
      
      gcc/fortran/ChangeLog:
      	PR other/116613
      	* arith.cc: Add #define INCLUDE_MEMORY.
      	* array.cc: Likewise.
      	* bbt.cc: Likewise.
      	* check.cc: Likewise.
      	* class.cc: Likewise.
      	* constructor.cc: Likewise.
      	* convert.cc: Likewise.
      	* cpp.cc: Likewise.
      	* data.cc: Likewise.
      	* decl.cc: Likewise.
      	* dependency.cc: Likewise.
      	* dump-parse-tree.cc: Likewise.
      	* error.cc: Likewise.
      	* expr.cc: Likewise.
      	* f95-lang.cc: Likewise.
      	* frontend-passes.cc: Likewise.
      	* interface.cc: Likewise.
      	* intrinsic.cc: Likewise.
      	* io.cc: Likewise.
      	* iresolve.cc: Likewise.
      	* match.cc: Likewise.
      	* matchexp.cc: Likewise.
      	* misc.cc: Likewise.
      	* module.cc: Likewise.
      	* openmp.cc: Likewise.
      	* options.cc: Likewise.
      	* parse.cc: Likewise.
      	* primary.cc: Likewise.
      	* resolve.cc: Likewise.
      	* scanner.cc: Likewise.
      	* simplify.cc: Likewise.
      	* st.cc: Likewise.
      	* symbol.cc: Likewise.
      	* target-memory.cc: Likewise.
      	* trans-array.cc: Likewise.
      	* trans-common.cc: Likewise.
      	* trans-const.cc: Likewise.
      	* trans-decl.cc: Likewise.
      	* trans-expr.cc: Likewise.
      	* trans-intrinsic.cc: Likewise.
      	* trans-io.cc: Likewise.
      	* trans-openmp.cc: Likewise.
      	* trans-stmt.cc: Likewise.
      	* trans-types.cc: Likewise.
      	* trans.cc: Likewise.
      
      gcc/go/ChangeLog:
      	PR other/116613
      	* go-backend.cc: Add #define INCLUDE_MEMORY.
      	* go-lang.cc: Likewise.
      
      gcc/jit/ChangeLog:
      	PR other/116613
      	* dummy-frontend.cc: Add #define INCLUDE_MEMORY.
      	* jit-playback.cc: Likewise.
      	* jit-recording.cc: Likewise.
      
      gcc/lto/ChangeLog:
      	PR other/116613
      	* lto-common.cc: Add #define INCLUDE_MEMORY.
      	* lto-dump.cc: Likewise.
      	* lto-partition.cc: Likewise.
      	* lto-symtab.cc: Likewise.
      	* lto.cc: Likewise.
      
      gcc/m2/ChangeLog:
      	PR other/116613
      	* gm2-gcc/gcc-consolidation.h: Add #define INCLUDE_MEMORY.
      	* gm2-gcc/m2configure.cc: Likewise.
      	* mc-boot/GASCII.cc: Regenerate.
      	* mc-boot/GASCII.h: Ditto.
      	* mc-boot/GArgs.cc: Ditto.
      	* mc-boot/GArgs.h: Ditto.
      	* mc-boot/GAssertion.cc: Ditto.
      	* mc-boot/GAssertion.h: Ditto.
      	* mc-boot/GBreak.cc: Ditto.
      	* mc-boot/GBreak.h: Ditto.
      	* mc-boot/GCOROUTINES.h: Ditto.
      	* mc-boot/GCmdArgs.cc: Ditto.
      	* mc-boot/GCmdArgs.h: Ditto.
      	* mc-boot/GDebug.cc: Ditto.
      	* mc-boot/GDebug.h: Ditto.
      	* mc-boot/GDynamicStrings.cc: Ditto.
      	* mc-boot/GDynamicStrings.h: Ditto.
      	* mc-boot/GEnvironment.cc: Ditto.
      	* mc-boot/GEnvironment.h: Ditto.
      	* mc-boot/GFIO.cc: Ditto.
      	* mc-boot/GFIO.h: Ditto.
      	* mc-boot/GFormatStrings.cc: Ditto.
      	* mc-boot/GFormatStrings.h: Ditto.
      	* mc-boot/GFpuIO.cc: Ditto.
      	* mc-boot/GFpuIO.h: Ditto.
      	* mc-boot/GIO.cc: Ditto.
      	* mc-boot/GIO.h: Ditto.
      	* mc-boot/GIndexing.cc: Ditto.
      	* mc-boot/GIndexing.h: Ditto.
      	* mc-boot/GM2Dependent.cc: Ditto.
      	* mc-boot/GM2Dependent.h: Ditto.
      	* mc-boot/GM2EXCEPTION.cc: Ditto.
      	* mc-boot/GM2EXCEPTION.h: Ditto.
      	* mc-boot/GM2RTS.cc: Ditto.
      	* mc-boot/GM2RTS.h: Ditto.
      	* mc-boot/GMemUtils.cc: Ditto.
      	* mc-boot/GMemUtils.h: Ditto.
      	* mc-boot/GNumberIO.cc: Ditto.
      	* mc-boot/GNumberIO.h: Ditto.
      	* mc-boot/GPushBackInput.cc: Ditto.
      	* mc-boot/GPushBackInput.h: Ditto.
      	* mc-boot/GRTExceptions.cc: Ditto.
      	* mc-boot/GRTExceptions.h: Ditto.
      	* mc-boot/GRTco.h: Ditto.
      	* mc-boot/GRTentity.h: Ditto.
      	* mc-boot/GRTint.cc: Ditto.
      	* mc-boot/GRTint.h: Ditto.
      	* mc-boot/GSArgs.cc: Ditto.
      	* mc-boot/GSArgs.h: Ditto.
      	* mc-boot/GSFIO.cc: Ditto.
      	* mc-boot/GSFIO.h: Ditto.
      	* mc-boot/GSYSTEM.h: Ditto.
      	* mc-boot/GSelective.h: Ditto.
      	* mc-boot/GStdIO.cc: Ditto.
      	* mc-boot/GStdIO.h: Ditto.
      	* mc-boot/GStorage.cc: Ditto.
      	* mc-boot/GStorage.h: Ditto.
      	* mc-boot/GStrCase.cc: Ditto.
      	* mc-boot/GStrCase.h: Ditto.
      	* mc-boot/GStrIO.cc: Ditto.
      	* mc-boot/GStrIO.h: Ditto.
      	* mc-boot/GStrLib.cc: Ditto.
      	* mc-boot/GStrLib.h: Ditto.
      	* mc-boot/GStringConvert.cc: Ditto.
      	* mc-boot/GStringConvert.h: Ditto.
      	* mc-boot/GSysExceptions.h: Ditto.
      	* mc-boot/GSysStorage.cc: Ditto.
      	* mc-boot/GSysStorage.h: Ditto.
      	* mc-boot/GTimeString.cc: Ditto.
      	* mc-boot/GTimeString.h: Ditto.
      	* mc-boot/GUnixArgs.h: Ditto.
      	* mc-boot/Galists.cc: Ditto.
      	* mc-boot/Galists.h: Ditto.
      	* mc-boot/Gdecl.cc: Ditto.
      	* mc-boot/Gdecl.h: Ditto.
      	* mc-boot/Gdtoa.h: Ditto.
      	* mc-boot/Gerrno.h: Ditto.
      	* mc-boot/Gkeyc.cc: Ditto.
      	* mc-boot/Gkeyc.h: Ditto.
      	* mc-boot/Gldtoa.h: Ditto.
      	* mc-boot/Glibc.h: Ditto.
      	* mc-boot/Glibm.h: Ditto.
      	* mc-boot/Glists.cc: Ditto.
      	* mc-boot/Glists.h: Ditto.
      	* mc-boot/GmcComment.cc: Ditto.
      	* mc-boot/GmcComment.h: Ditto.
      	* mc-boot/GmcComp.cc: Ditto.
      	* mc-boot/GmcComp.h: Ditto.
      	* mc-boot/GmcDebug.cc: Ditto.
      	* mc-boot/GmcDebug.h: Ditto.
      	* mc-boot/GmcError.cc: Ditto.
      	* mc-boot/GmcError.h: Ditto.
      	* mc-boot/GmcFileName.cc: Ditto.
      	* mc-boot/GmcFileName.h: Ditto.
      	* mc-boot/GmcLexBuf.cc: Ditto.
      	* mc-boot/GmcLexBuf.h: Ditto.
      	* mc-boot/GmcMetaError.cc: Ditto.
      	* mc-boot/GmcMetaError.h: Ditto.
      	* mc-boot/GmcOptions.cc: Ditto.
      	* mc-boot/GmcOptions.h: Ditto.
      	* mc-boot/GmcPreprocess.cc: Ditto.
      	* mc-boot/GmcPreprocess.h: Ditto.
      	* mc-boot/GmcPretty.cc: Ditto.
      	* mc-boot/GmcPretty.h: Ditto.
      	* mc-boot/GmcPrintf.cc: Ditto.
      	* mc-boot/GmcPrintf.h: Ditto.
      	* mc-boot/GmcQuiet.cc: Ditto.
      	* mc-boot/GmcQuiet.h: Ditto.
      	* mc-boot/GmcReserved.cc: Ditto.
      	* mc-boot/GmcReserved.h: Ditto.
      	* mc-boot/GmcSearch.cc: Ditto.
      	* mc-boot/GmcSearch.h: Ditto.
      	* mc-boot/GmcStack.cc: Ditto.
      	* mc-boot/GmcStack.h: Ditto.
      	* mc-boot/GmcStream.cc: Ditto.
      	* mc-boot/GmcStream.h: Ditto.
      	* mc-boot/Gmcflex.h: Ditto.
      	* mc-boot/Gmcp1.cc: Ditto.
      	* mc-boot/Gmcp1.h: Ditto.
      	* mc-boot/Gmcp2.cc: Ditto.
      	* mc-boot/Gmcp2.h: Ditto.
      	* mc-boot/Gmcp3.cc: Ditto.
      	* mc-boot/Gmcp3.h: Ditto.
      	* mc-boot/Gmcp4.cc: Ditto.
      	* mc-boot/Gmcp4.h: Ditto.
      	* mc-boot/Gmcp5.cc: Ditto.
      	* mc-boot/Gmcp5.h: Ditto.
      	* mc-boot/GnameKey.cc: Ditto.
      	* mc-boot/GnameKey.h: Ditto.
      	* mc-boot/GsymbolKey.cc: Ditto.
      	* mc-boot/GsymbolKey.h: Ditto.
      	* mc-boot/Gtermios.h: Ditto.
      	* mc-boot/Gtop.cc: Ditto.
      	* mc-boot/Gvarargs.cc: Ditto.
      	* mc-boot/Gvarargs.h: Ditto.
      	* mc-boot/Gwlists.cc: Ditto.
      	* mc-boot/Gwlists.h: Ditto.
      	* mc-boot/Gwrapc.h: Ditto.
      	* mc/keyc.mod (checkGccConfigSystem): Add
      	#define INCLUDE_MEMORY.
      	* pge-boot/GASCII.cc: Regenerate.
      	* pge-boot/GASCII.h: Ditto.
      	* pge-boot/GArgs.cc: Ditto.
      	* pge-boot/GArgs.h: Ditto.
      	* pge-boot/GAssertion.cc: Ditto.
      	* pge-boot/GAssertion.h: Ditto.
      	* pge-boot/GBreak.h: Ditto.
      	* pge-boot/GCmdArgs.h: Ditto.
      	* pge-boot/GDebug.cc: Ditto.
      	* pge-boot/GDebug.h: Ditto.
      	* pge-boot/GDynamicStrings.cc: Ditto.
      	* pge-boot/GDynamicStrings.h: Ditto.
      	* pge-boot/GEnvironment.h: Ditto.
      	* pge-boot/GFIO.cc: Ditto.
      	* pge-boot/GFIO.h: Ditto.
      	* pge-boot/GFormatStrings.h: Ditto.
      	* pge-boot/GFpuIO.h: Ditto.
      	* pge-boot/GIO.cc: Ditto.
      	* pge-boot/GIO.h: Ditto.
      	* pge-boot/GIndexing.cc: Ditto.
      	* pge-boot/GIndexing.h: Ditto.
      	* pge-boot/GLists.cc: Ditto.
      	* pge-boot/GLists.h: Ditto.
      	* pge-boot/GM2Dependent.cc: Ditto.
      	* pge-boot/GM2Dependent.h: Ditto.
      	* pge-boot/GM2EXCEPTION.cc: Ditto.
      	* pge-boot/GM2EXCEPTION.h: Ditto.
      	* pge-boot/GM2RTS.cc: Ditto.
      	* pge-boot/GM2RTS.h: Ditto.
      	* pge-boot/GNameKey.cc: Ditto.
      	* pge-boot/GNameKey.h: Ditto.
      	* pge-boot/GNumberIO.cc: Ditto.
      	* pge-boot/GNumberIO.h: Ditto.
      	* pge-boot/GOutput.cc: Ditto.
      	* pge-boot/GOutput.h: Ditto.
      	* pge-boot/GPushBackInput.cc: Ditto.
      	* pge-boot/GPushBackInput.h: Ditto.
      	* pge-boot/GRTExceptions.cc: Ditto.
      	* pge-boot/GRTExceptions.h: Ditto.
      	* pge-boot/GSArgs.h: Ditto.
      	* pge-boot/GSEnvironment.h: Ditto.
      	* pge-boot/GSFIO.cc: Ditto.
      	* pge-boot/GSFIO.h: Ditto.
      	* pge-boot/GSYSTEM.h: Ditto.
      	* pge-boot/GScan.h: Ditto.
      	* pge-boot/GStdIO.cc: Ditto.
      	* pge-boot/GStdIO.h: Ditto.
      	* pge-boot/GStorage.cc: Ditto.
      	* pge-boot/GStorage.h: Ditto.
      	* pge-boot/GStrCase.cc: Ditto.
      	* pge-boot/GStrCase.h: Ditto.
      	* pge-boot/GStrIO.cc: Ditto.
      	* pge-boot/GStrIO.h: Ditto.
      	* pge-boot/GStrLib.cc: Ditto.
      	* pge-boot/GStrLib.h: Ditto.
      	* pge-boot/GStringConvert.h: Ditto.
      	* pge-boot/GSymbolKey.cc: Ditto.
      	* pge-boot/GSymbolKey.h: Ditto.
      	* pge-boot/GSysExceptions.h: Ditto.
      	* pge-boot/GSysStorage.cc: Ditto.
      	* pge-boot/GSysStorage.h: Ditto.
      	* pge-boot/GTimeString.h: Ditto.
      	* pge-boot/GUnixArgs.h: Ditto.
      	* pge-boot/Gbnflex.cc: Ditto.
      	* pge-boot/Gbnflex.h: Ditto.
      	* pge-boot/Gdtoa.h: Ditto.
      	* pge-boot/Gerrno.h: Ditto.
      	* pge-boot/Gldtoa.h: Ditto.
      	* pge-boot/Glibc.h: Ditto.
      	* pge-boot/Glibm.h: Ditto.
      	* pge-boot/Gpge.cc: Ditto.
      	* pge-boot/Gtermios.h: Ditto.
      	* pge-boot/Gwrapc.h: Ditto.
      
      gcc/objc/ChangeLog:
      	PR other/116613
      	* objc-act.cc: Add #define INCLUDE_MEMORY.
      	* objc-encoding.cc: Likewise.
      	* objc-gnu-runtime-abi-01.cc: Likewise.
      	* objc-lang.cc: Likewise.
      	* objc-next-runtime-abi-01.cc: Likewise.
      	* objc-next-runtime-abi-02.cc: Likewise.
      	* objc-runtime-shared-support.cc: Likewise.
      
      gcc/objcp/ChangeLog:: Add #define INCLUDE_MEMORY.
      	PR other/116613
      	* objcp-decl.cc
      	* objcp-lang.cc: Likewise.
      
      gcc/rust/ChangeLog:
      	PR other/116613
      	* resolve/rust-ast-resolve-expr.cc: Add #define INCLUDE_MEMORY.
      	* rust-attribs.cc: Likewise.
      	* rust-system.h: Likewise.
      
      gcc/ChangeLog:
      	PR other/116613
      	* asan.cc: Add #define INCLUDE_MEMORY.
      	* attribs.cc: Likewise.
      	(attr_access::array_as_string): Use
      	diagnostic_context::clone_printer and use unique_ptr.
      	* auto-profile.cc: Add #define INCLUDE_MEMORY.
      	* calls.cc: Likewise.
      	* cfganal.cc: Likewise.
      	* cfgexpand.cc: Likewise.
      	* cfghooks.cc: Likewise.
      	* cfgloop.cc: Likewise.
      	* cgraph.cc: Likewise.
      	* cgraphclones.cc: Likewise.
      	* cgraphunit.cc: Likewise.
      	* collect-utils.cc: Likewise.
      	* collect2.cc: Likewise.
      	* common/config/aarch64/aarch64-common.cc: Likewise.
      	* common/config/arm/arm-common.cc: Likewise.
      	* common/config/avr/avr-common.cc: Likewise.
      	* config/aarch64/aarch64-cc-fusion.cc: Likewise.
      	* config/aarch64/aarch64-early-ra.cc: Likewise.
      	* config/aarch64/aarch64-sve-builtins.cc: Likewise.
      	* config/arc/arc.cc: Likewise.
      	* config/arm/aarch-common.cc: Likewise.
      	* config/arm/arm-mve-builtins.cc: Likewise.
      	* config/avr/avr-devices.cc: Likewise.
      	* config/avr/driver-avr.cc: Likewise.
      	* config/bpf/bpf.cc: Likewise.
      	* config/bpf/btfext-out.cc: Likewise.
      	* config/bpf/core-builtins.cc: Likewise.
      	* config/darwin.cc: Likewise.
      	* config/i386/driver-i386.cc: Likewise.
      	* config/i386/i386-builtins.cc: Likewise.
      	* config/i386/i386-expand.cc: Likewise.
      	* config/i386/i386-features.cc: Likewise.
      	* config/i386/i386-options.cc: Likewise.
      	* config/loongarch/loongarch-builtins.cc: Likewise.
      	* config/mingw/winnt-cxx.cc: Likewise.
      	* config/mingw/winnt.cc: Likewise.
      	* config/mips/mips.cc: Likewise.
      	* config/msp430/driver-msp430.cc: Likewise.
      	* config/nvptx/mkoffload.cc: Likewise.
      	* config/nvptx/nvptx.cc: Likewise.
      	* config/riscv/riscv-avlprop.cc: Likewise.
      	* config/riscv/riscv-vector-builtins.cc: Likewise.
      	* config/riscv/riscv-vsetvl.cc: Likewise.
      	* config/rs6000/driver-rs6000.cc: Likewise.
      	* config/rs6000/host-darwin.cc: Likewise.
      	* config/rs6000/rs6000-c.cc: Likewise.
      	* config/s390/s390-c.cc: Likewise.
      	* config/s390/s390.cc: Likewise.
      	* config/sol2-cxx.cc: Likewise.
      	* config/vms/vms-c.cc: Likewise.
      	* config/xtensa/xtensa-dynconfig.cc: Likewise.
      	* coroutine-passes.cc: Likewise.
      	* coverage.cc: Likewise.
      	* data-streamer-in.cc: Likewise.
      	* data-streamer-out.cc: Likewise.
      	* data-streamer.cc: Likewise.
      	* diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer):
      	Delete.
      	(diagnostic_buffer::m_per_format_buffer): Use std::unique_ptr.
      	* diagnostic-client-data-hooks.h (make_compiler_data_hooks): Use
      	std::unique_ptr for return type.
      	* diagnostic-format-json.cc
      	(json_output_format::make_per_format_buffer): Likewise.
      	(diagnostic_output_format_init_json): Update for usage of
      	std::unique_ptr in set_output_format.
      	* diagnostic-format-sarif.cc
      	(sarif_output_format::make_per_format_buffer): Use std::unique_ptr
      	for return type.
      	(diagnostic_output_format_init_sarif): Update for usage of
      	std::unique_ptr.
      	(test_message_with_embedded_link): Likewise for set_urlifier.
      	* diagnostic-format-text.cc: Add #define INCLUDE_MEMORY.  Include
      	"make-unique.h".
      	(diagnostic_text_output_format::set_buffer): Use std::unique_ptr.
      	* diagnostic-format-text.h
      	(diagnostic_text_output_format::set_buffer): Likewise.
      	* diagnostic-format.h
      	(diagnostic_output_format::make_per_format_buffer): Likewise.
      	* diagnostic-global-context.cc:
      	* diagnostic-macro-unwinding.cc: Likewise.
      	* diagnostic-show-locus.cc: Likewise.
      	* diagnostic-spec.cc: Likewise.
      	* diagnostic.cc (diagnostic_context::set_output_format): Use
      	std::unique_ptr for input.
      	(diagnostic_context::set_client_data_hooks): Likewise.
      	(diagnostic_context::set_option_manager): Likewise.
      	(diagnostic_context::set_urlifier): Likewise.
      	(diagnostic_context::set_diagnostic_buffer): Update for use of
      	std::unique_ptr.
      	(diagnostic_buffer::diagnostic_buffer): Likewise.
      	(diagnostic_buffer::~diagnostic_buffer): Delete.
      	* diagnostic.h: Complain if INCLUDE_MEMORY was not defined.
      	(diagnostic_context::set_output_format): Use std::unique_ptr for
      	input.
      	(diagnostic_context::set_client_data_hooks): Likewise.
      	(diagnostic_context::set_option_manager): Likewise.
      	(diagnostic_context::set_urlifier): Likewise.
      	(diagnostic_context::clone_printer): New.
      	(diagnostic_context::m_printer): Update comment.
      	(diagnostic_context::m_option_mgr): Likewise.
      	(diagnostic_context::m_urlifier): Likewise.
      	(diagnostic_context::m_edit_context_ptr): Likewise.
      	(diagnostic_context::m_output_format): Likewise.
      	(diagnostic_context::m_client_data_hooks): Likewise.
      	(diagnostic_context::m_theme): Likewise.
      	* digraph.cc: Add #define INCLUDE_MEMORY.
      	* dwarf2out.cc: Likewise.
      	* edit-context.cc: Likewise.
      	* except.cc: Likewise.
      	* expr.cc: Likewise.
      	* file-prefix-map.cc: Likewise.
      	* final.cc: Likewise.
      	* fwprop.cc: Likewise.
      	* gcc-plugin.h: Likewise.
      	* gcc-rich-location.cc: Likewise.
      	* gcc-urlifier.cc: Likewise.  Add #include "make-unique.h".
      	(make_gcc_urlifier): Use std::unique_ptr and ::make_unique.
      	* gcc-urlifier.h (make_gcc_urlifier): Use std::unique_ptr.
      	* gcc.cc: Add #define INCLUDE_MEMORY.  Include
      	"pretty-print-urlifier.h".
      	* gcov-dump.cc: Add #define INCLUDE_MEMORY.
      	* gcov-tool.cc: Likewise.
      	* gengtype.cc (open_base_files): Likewise to output.
      	* genmatch.cc: Likewise.
      	* gimple-fold.cc: Likewise.
      	* gimple-harden-conditionals.cc: Likewise.
      	* gimple-harden-control-flow.cc: Likewise.
      	* gimple-if-to-switch.cc: Likewise.
      	* gimple-lower-bitint.cc: Likewise.
      	* gimple-predicate-analysis.cc: Likewise.
      	* gimple-pretty-print.cc: Likewise.
      	* gimple-range-cache.cc: Likewise.
      	* gimple-range-edge.cc: Likewise.
      	* gimple-range-fold.cc: Likewise.
      	* gimple-range-gori.cc: Likewise.
      	* gimple-range-infer.cc: Likewise.
      	* gimple-range-op.cc: Likewise.
      	* gimple-range-path.cc: Likewise.
      	* gimple-range-phi.cc: Likewise.
      	* gimple-range-trace.cc: Likewise.
      	* gimple-range.cc: Likewise.
      	* gimple-ssa-backprop.cc: Likewise.
      	* gimple-ssa-sprintf.cc: Likewise.
      	* gimple-ssa-store-merging.cc: Likewise.
      	* gimple-ssa-strength-reduction.cc: Likewise.
      	* gimple-ssa-warn-access.cc: Likewise.
      	* gimple-ssa-warn-alloca.cc: Likewise.
      	* gimple-ssa-warn-restrict.cc: Likewise.
      	* gimple-streamer-in.cc: Likewise.
      	* gimple-streamer-out.cc: Likewise.
      	* gimple.cc: Likewise.
      	* gimplify.cc: Likewise.
      	* graph.cc: Likewise.
      	* graphviz.cc: Likewise.
      	* input.cc: Likewise.
      	* ipa-cp.cc: Likewise.
      	* ipa-devirt.cc: Likewise.
      	* ipa-fnsummary.cc: Likewise.
      	* ipa-free-lang-data.cc: Likewise.
      	* ipa-icf-gimple.cc: Likewise.
      	* ipa-icf.cc: Likewise.
      	* ipa-inline-analysis.cc: Likewise.
      	* ipa-inline.cc: Likewise.
      	* ipa-modref-tree.cc: Likewise.
      	* ipa-modref.cc: Likewise.
      	* ipa-param-manipulation.cc: Likewise.
      	* ipa-polymorphic-call.cc: Likewise.
      	* ipa-predicate.cc: Likewise.
      	* ipa-profile.cc: Likewise.
      	* ipa-prop.cc: Likewise.
      	* ipa-pure-const.cc: Likewise.
      	* ipa-reference.cc: Likewise.
      	* ipa-split.cc: Likewise.
      	* ipa-sra.cc: Likewise.
      	* ipa-strub.cc: Likewise.
      	* ipa-utils.cc: Likewise.
      	* langhooks.cc: Likewise.
      	* late-combine.cc: Likewise.
      	* lto-cgraph.cc: Likewise.
      	* lto-compress.cc: Likewise.
      	* lto-opts.cc: Likewise.
      	* lto-section-in.cc: Likewise.
      	* lto-section-out.cc: Likewise.
      	* lto-streamer-in.cc: Likewise.
      	* lto-streamer-out.cc: Likewise.
      	* lto-streamer.cc: Likewise.
      	* lto-wrapper.cc: Likewise.  Include "make-unique.h".
      	(main): Use ::make_unique when creating option manager.
      	* multiple_target.cc: Likewise.
      	* omp-expand.cc: Likewise.
      	* omp-general.cc: Likewise.
      	* omp-low.cc: Likewise.
      	* omp-oacc-neuter-broadcast.cc: Likewise.
      	* omp-offload.cc: Likewise.
      	* omp-simd-clone.cc: Likewise.
      	* optc-gen.awk: Likewise in output.
      	* optc-save-gen.awk: Likewise in output.
      	* options-urls-cc-gen.awk: Likewise in output.
      	* opts-common.cc: Likewise.
      	* opts-global.cc: Likewise.
      	* opts.cc: Likewise.
      	* pair-fusion.cc: Likewise.
      	* passes.cc: Likewise.
      	* pointer-query.cc: Likewise.
      	* predict.cc: Likewise.
      	* pretty-print.cc (pretty_printer::clone): Use std::unique_ptr and
      	::make_unique.
      	* pretty-print.h: Complain if INCLUDE_MEMORY is not defined.
      	(pretty_printer::clone): Use std::unique_ptr.
      	* print-rtl.cc: Add #define INCLUDE_MEMORY.
      	* print-tree.cc: Likewise.
      	* profile-count.cc: Likewise.
      	* range-op-float.cc: Likewise.
      	* range-op-ptr.cc: Likewise.
      	* range-op.cc: Likewise.
      	* range.cc: Likewise.
      	* read-rtl-function.cc: Likewise.
      	* rtl-error.cc: Likewise.
      	* rtl-ssa/accesses.cc: Likewise.
      	* rtl-ssa/blocks.cc: Likewise.
      	* rtl-ssa/changes.cc: Likewise.
      	* rtl-ssa/functions.cc: Likewise.
      	* rtl-ssa/insns.cc: Likewise.
      	* rtl-ssa/movement.cc: Likewise.
      	* rtl-tests.cc: Likewise.
      	* sanopt.cc: Likewise.
      	* sched-rgn.cc: Likewise.
      	* selftest-diagnostic-path.cc: Likewise.
      	* selftest-diagnostic.cc: Likewise.
      	* splay-tree-utils.cc: Likewise.
      	* sreal.cc: Likewise.
      	* stmt.cc: Likewise.
      	* substring-locations.cc: Likewise.
      	* symtab-clones.cc: Likewise.
      	* symtab-thunks.cc: Likewise.
      	* symtab.cc: Likewise.
      	* text-art/box-drawing.cc: Likewise.
      	* text-art/canvas.cc: Likewise.
      	* text-art/ruler.cc: Likewise.
      	* text-art/selftests.cc: Likewise.
      	* text-art/theme.cc: Likewise.
      	* toplev.cc: Likewise.  Include "make-unique.h".
      	(general_init): Use ::make_unique when setting option_manager.
      	* trans-mem.cc: Add #define INCLUDE_MEMORY.
      	* tree-affine.cc: Likewise.
      	* tree-call-cdce.cc: Likewise.
      	* tree-cfg.cc: Likewise.
      	* tree-chrec.cc: Likewise.
      	* tree-dfa.cc: Likewise.
      	* tree-diagnostic-client-data-hooks.cc: Include "make-unique.h".
      	(make_compiler_data_hooks): Use std::unique_ptr and ::make_unique.
      	* tree-diagnostic.cc: Add #define INCLUDE_MEMORY.
      	* tree-dump.cc: Likewise.
      	* tree-inline.cc: Likewise.
      	* tree-into-ssa.cc: Likewise.
      	* tree-logical-location.cc: Likewise.
      	* tree-nested.cc: Likewise.
      	* tree-nrv.cc: Likewise.
      	* tree-object-size.cc: Likewise.
      	* tree-outof-ssa.cc: Likewise.
      	* tree-pretty-print.cc: Likewise.
      	* tree-profile.cc: Likewise.
      	* tree-scalar-evolution.cc: Likewise.
      	* tree-sra.cc: Likewise.
      	* tree-ssa-address.cc: Likewise.
      	* tree-ssa-alias.cc: Likewise.
      	* tree-ssa-ccp.cc: Likewise.
      	* tree-ssa-coalesce.cc: Likewise.
      	* tree-ssa-copy.cc: Likewise.
      	* tree-ssa-dce.cc: Likewise.
      	* tree-ssa-dom.cc: Likewise.
      	* tree-ssa-forwprop.cc: Likewise.
      	* tree-ssa-ifcombine.cc: Likewise.
      	* tree-ssa-loop-ch.cc: Likewise.
      	* tree-ssa-loop-im.cc: Likewise.
      	* tree-ssa-loop-manip.cc: Likewise.
      	* tree-ssa-loop-niter.cc: Likewise.
      	* tree-ssa-loop-split.cc: Likewise.
      	* tree-ssa-math-opts.cc: Likewise.
      	* tree-ssa-operands.cc: Likewise.
      	* tree-ssa-phiprop.cc: Likewise.
      	* tree-ssa-pre.cc: Likewise.
      	* tree-ssa-propagate.cc: Likewise.
      	* tree-ssa-reassoc.cc: Likewise.
      	* tree-ssa-sccvn.cc: Likewise.
      	* tree-ssa-scopedtables.cc: Likewise.
      	* tree-ssa-sink.cc: Likewise.
      	* tree-ssa-strlen.cc: Likewise.
      	* tree-ssa-structalias.cc: Likewise.
      	* tree-ssa-ter.cc: Likewise.
      	* tree-ssa-uninit.cc: Likewise.
      	* tree-ssa.cc: Likewise.
      	* tree-ssanames.cc: Likewise.
      	* tree-stdarg.cc: Likewise.
      	* tree-streamer-in.cc: Likewise.
      	* tree-streamer-out.cc: Likewise.
      	* tree-streamer.cc: Likewise.
      	* tree-switch-conversion.cc: Likewise.
      	* tree-tailcall.cc: Likewise.
      	* tree-vrp.cc: Likewise.
      	* tree.cc: Likewise.
      	* ubsan.cc: Likewise.
      	* value-pointer-equiv.cc: Likewise.
      	* value-prof.cc: Likewise.
      	* value-query.cc: Likewise.
      	* value-range-pretty-print.cc: Likewise.
      	* value-range-storage.cc: Likewise.
      	* value-range.cc: Likewise.
      	* value-relation.cc: Likewise.
      	* var-tracking.cc: Likewise.
      	* varpool.cc: Likewise.
      	* vr-values.cc: Likewise.
      	* wide-int-print.cc: Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR other/116613
      	* gcc.dg/plugin/diagnostic_group_plugin.c: Update for use of
      	std::unique_ptr.
      	* gcc.dg/plugin/diagnostic_plugin_xhtml_format.c: Likewise.
      	* gcc.dg/plugin/ggcplug.c: Likewise.
      
      libgcc/ChangeLog:
      	PR other/116613
      	* libgcov-util.c: Add #define INCLUDE_MEMORY.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      Co-authored-by: default avatarGaius Mulley <gaiusmod2@gmail.com>
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      bf43fe6a
  3. Jan 03, 2024
  4. Jan 16, 2023
  5. Apr 28, 2022
    • Sebastian Huber's avatar
      gcov: Use xstrerror() · 92475ea8
      Sebastian Huber authored
      libgcc/
      
      	* libgcov-util.c (ftw_read_file): Improve notice using xstrerror().
      	(gcov_profile_merge_stream): Likewise.
      92475ea8
    • Sebastian Huber's avatar
      gcov-tool: Add merge-stream subcommand · 210e32b6
      Sebastian Huber authored
      gcc/
      
      	* doc/gcov-tool.texi: Document merge-stream subcommand.
      	* doc/invoke.texi (fprofile-info-section): Mention merge-stream
      	subcommand of gcov-tool.
      	* gcov-tool.cc (gcov_profile_merge_stream): Declare.
      	(print_merge_stream_usage_message): New.
      	(merge_stream_usage): Likewise.
      	(do_merge_stream): Likewise.
      	(print_usage): Call print_merge_stream_usage_message().
      	(main): Call do_merge_stream() to execute merge-stream subcommand.
      
      libgcc/
      
      	* libgcov-util.c (consume_stream): New.
      	(get_target_profiles_for_merge): Likewise.
      	(gcov_profile_merge_stream): Likewise.
      210e32b6
    • Sebastian Huber's avatar
      gcov: Fix integer types in ftw_read_file() · 1ff8d194
      Sebastian Huber authored
      libgcc/
      
      	* libgcov-util.c (ftw_read_file): Use size_t for strlen() variables.
      1ff8d194
    • Sebastian Huber's avatar
      gcov: Move gcov_open() to caller of read_gcda_file() · c190b0e6
      Sebastian Huber authored
      This allows to reuse read_gcda_file() to read multiple objects from a single
      file.
      
      libgcc/
      
      	* libgcov-util.c (read_gcda_file): Do not open file.
      	(ftw_read_file): Open file here.
      c190b0e6
    • Sebastian Huber's avatar
      gcov: Move prepend to list to read_gcda_file() · 76cae648
      Sebastian Huber authored
      This helps to reuse read_gcda_file().
      
      libgcc/
      
      	* libgcov-util.c (read_gcda_file): Prepend new info object to global
      	list.
      	(ftw_read_file): Remove list append here.
      76cae648
    • Sebastian Huber's avatar
      gcov: Use xstrdup() · f9b59dd8
      Sebastian Huber authored
      Move duplication of filename to caller and use xstrdup() instead of custom
      code.  This helps to reuse read_gcda_file() for other purposes.
      
      libgcc/
      
      	* libgcov-util.c (read_gcda_file): Do not duplicate filename.
      	(ftw_read_file): Duplicate filename for read_gcda_file().
      f9b59dd8
    • Sebastian Huber's avatar
      gcov: Add mode to all gcov_open() · d170ecc9
      Sebastian Huber authored
      gcc/
      
      	* gcov-io.cc (gcov_open): Always use the mode parameter.
      	* gcov-io.h (gcov_open): Declare it unconditionally.
      
      libgcc/
      
      	* libgcov-driver-system.c (gcov_exit_open_gcda_file): Open file for
      	reading and writing.
      	* libgcov-util.c (read_gcda_file): Open file for reading.
      	* libgcov.h (gcov_open): Delete declaration.
      d170ecc9
    • Sebastian Huber's avatar
      gcov-tool: Allow merging of empty profile lists · 336ea18a
      Sebastian Huber authored
      The gcov_profile_merge() already had code to deal with profile information
      which had no counterpart to merge with.  For profile information from files
      with no associated counterpart, the profile information is simply used as is
      with the weighting transformation applied.  Make sure that gcov_profile_merge()
      works with an empty target profile list.  Return the merged profile list.
      
      gcc/
      	* gcov-tool.cc (gcov_profile_merge): Adjust return type.
      	(profile_merge): Allow merging of directories which contain no profile
      	files.
      
      libgcc/
      	* libgcov-util.c (gcov_profile_merge): Return the list of merged
      	profiles.  Accept empty target and source profile lists.
      336ea18a
  6. Jan 03, 2022
  7. Oct 13, 2021
    • Martin Liska's avatar
      gcov: make profile merging smarter · 72e0c742
      Martin Liska authored
      Support merging of profiles that are built from a different .o files
      but belong to the same source file. Moreover, a checksum is verified
      during profile merging and so we can safely combine such profile.
      
      	PR gcov-profile/90364
      
      gcc/ChangeLog:
      
      	* coverage.c (build_info): Emit checksum to the global variable.
      	(build_info_type): Add new field for checksum.
      	(coverage_obj_finish): Pass object_checksum.
      	(coverage_init): Use 0 as checksum for .gcno files.
      	* gcov-dump.c (dump_gcov_file): Dump also new checksum field.
      	* gcov.c (read_graph_file): Read also checksum.
      	* doc/invoke.texi: Document the behaviour change.
      
      libgcc/ChangeLog:
      
      	* libgcov-driver.c (merge_one_data): Skip timestamp and verify
      	checksums.
      	(write_one_data): Write also checksum.
      	* libgcov-util.c (read_gcda_file): Read also checksum field.
      	* libgcov.h (struct gcov_info): Add new field.
      72e0c742
  8. Jan 04, 2021
  9. Jul 02, 2020
    • Martin Liska's avatar
      Do not stream all zeros for gcda files. · ece21ff6
      Martin Liska authored
      gcc/ChangeLog:
      
      	PR gcov-profile/95348
      	* coverage.c (read_counts_file): Read only COUNTERS that are
      	not all-zero.
      	* gcov-dump.c (tag_function): Change signature from unsigned to
      	signed integer.
      	(tag_blocks): Likewise.
      	(tag_arcs): Likewise.
      	(tag_lines): Likewise.
      	(tag_counters): Likewise.
      	(tag_summary): Likewise.
      	* gcov.c (read_count_file): Read all non-zero counters
      	sensitively.
      
      libgcc/ChangeLog:
      
      	PR gcov-profile/95348
      	* libgcov-driver.c (merge_one_data): Merge only profiles
      	that are not of non-zero type.
      	(write_one_data): Write counters only if there's one non-zero
      	value.
      	* libgcov-util.c (tag_function): Change signature from unsigned
      	to int.
      	(tag_blocks): Likewise.
      	(tag_arcs): Likewise.
      	(tag_counters): Likewise.
      	(tag_summary): Likewise.
      	(tag_lines): Read only if COUNTERS is non-zero.
      	(read_gcda_file): Handle negative length for COUNTERS type.
      ece21ff6
  10. Jun 25, 2020
    • Martin Liska's avatar
      gcov-tool: fix merge operation for summary · 88891c5f
      Martin Liska authored
      libgcc/ChangeLog:
      
      	* libgcov-driver.c (merge_summary): Remove function as its name
      	is misleading and doing something different.
      	(dump_one_gcov): Add ATTRIBUTE_UNUSED for 2 args. Take read summary
      	in gcov-tool.
      	* libgcov-util.c (curr_object_summary): Remove.
      	(read_gcda_file): Remove unused curr_object_summary.
      	(gcov_merge): Merge summaries.
      	* libgcov.h: Add summary argument for gcov_info struct.
      88891c5f
  11. Jun 17, 2020
    • Martin Liska's avatar
      gcov: fix gcov-tool merge for TOPN counters · 5fc312a9
      Martin Liska authored
      libgcc/ChangeLog:
      
      	* libgcov-util.c (read_gcda_finalize): Remove const operator.
      	(merge_wrapper): Add both counts and use them properly.
      	(topn_to_memory_representation): New function.
      	(gcov_merge): Covert on disk representation to in memory
      	representation.
      	* libgcov.h: Remove const operator.
      5fc312a9
  12. May 28, 2020
    • Martin Liska's avatar
      gcov-tool: Flexible endian adjustment for merging coverage data · 17d1594b
      Martin Liska authored
      gcc/ChangeLog:
      2020-05-27  Dong JianQiang  <dongjianqiang2@huawei.com>
      
      	PR gcov-profile/95332
      	* gcov-io.c (gcov_var::endian): Move field.
      	(from_file): Add IN_GCOV_TOOL check.
      	* gcov-io.h (gcov_magic): Ditto.
      
      libgcc/ChangeLog:
      2020-05-27  Dong JianQiang  <dongjianqiang2@huawei.com>
      
      	PR gcov-profile/95332
      	* libgcov-util.c (read_gcda_file): Call gcov_magic.
      	* libgcov.h (gcov_magic): Disable GCC poison.
      17d1594b
  13. Jan 01, 2020
  14. Jul 03, 2019
    • Martin Liska's avatar
      Rename SINGE_VALUE to TOPN_VALUES counters. · 596341c7
      Martin Liska authored
      2019-07-03  Martin Liska  <mliska@suse.cz>
      
      	* gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
      	(GCOV_COUNTER_V_TOPN): New.
      	(GCOV_COUNTER_V_INDIR): Use _topn.
      	* gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
      	(GCOV_TOPN_VALUES): New.
      	(GCOV_SINGLE_VALUE_COUNTERS): Remove.
      	(GCOV_TOPN_VALUES_COUNTERS): New.
      	* profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
      	* tree-profile.c:
      	(gimple_init_gcov_profiler): Rename variables from one_value
      	to topn_values.
      	(gimple_gen_one_value_profiler): Remove.
      	(gimple_gen_topn_values_profiler): New function.
      	* value-prof.c (dump_histogram_value): Use TOPN_VALUES
      	names instead of SINGLE_VALUE.
      	(stream_out_histogram_value): Likewise.
      	(stream_in_histogram_value): Likewise.
      	(get_most_common_single_value): Likewise.
      	(gimple_divmod_fixed_value_transform): Likewise.
      	(gimple_stringops_transform): Likewise.
      	(gimple_divmod_values_to_profile): Likewise.
      	(gimple_stringops_values_to_profile): Likewise.
      	(gimple_find_values_to_profile): Likewise.
      	* value-prof.h (enum hist_type): Rename to TOPN.
      	(gimple_gen_one_value_profiler): Remove.
      	(gimple_gen_topn_values_profiler): New.
      2019-07-03  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Use topn_values instead of one_value names.
      	* libgcov-merge.c (__gcov_merge_single): Move to ...
      	(__gcov_merge_topn): ... this.
      	(merge_single_value_set): Move to ...
      	(merge_topn_values_set): ... this.
      	* libgcov-profiler.c (__gcov_one_value_profiler_body): Move to
      	...
      	(__gcov_topn_values_profiler_body): ... this.
      	(__gcov_one_value_profiler_v2): Move to ...
      	(__gcov_topn_values_profiler): ... this.
      	(__gcov_one_value_profiler_v2_atomic): Move to ...
      	(__gcov_topn_values_profiler_atomic): ... this.
      	(__gcov_indirect_call_profiler_v4): Remove.
      	* libgcov-util.c (__gcov_single_counter_op): Move to ...
      	(__gcov_topn_counter_op): ... this.
      	* libgcov.h (L_gcov_merge_single): Remove.
      	(L_gcov_merge_topn): New.
      	(__gcov_merge_single): Remove.
      	(__gcov_merge_topn): New.
      	(__gcov_one_value_profiler_v2): Move to ..
      	(__gcov_topn_values_profiler): ... this.
      	(__gcov_one_value_profiler_v2_atomic): Move to ...
      	(__gcov_topn_values_profiler_atomic): ... this.
      
      From-SVN: r273005
      596341c7
  15. Jun 27, 2019
    • Martin Liska's avatar
      Remove quite obvious dead assignments. · 45309d28
      Martin Liska authored
      2019-06-27  Martin Liska  <mliska@suse.cz>
      
      	* asan.c (asan_emit_allocas_unpoison): Remove obviously
      	dead assignments.
      	* bt-load.c (move_btr_def): Likewise.
      	* builtins.c (expand_builtin_apply_args_1): Likewise.
      	(expand_builtin_apply): Likewise.
      	* cfgexpand.c (expand_asm_stmt): Likewise.
      	(construct_init_block): Likewise.
      	* cfghooks.c (verify_flow_info): Likewise.
      	* cfgloopmanip.c (remove_path): Likewise.
      	* cfgrtl.c (rtl_verify_bb_layout): Likewise.
      	* cgraph.c (cgraph_node::set_pure_flag): Likewise.
      	* combine.c (simplify_if_then_else): Likewise.
      	* config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
      	(choose_basereg): Likewise.
      	(ix86_expand_prologue): Likewise.
      	(ix86_preferred_output_reload_class): Likewise.
      	* cselib.c (cselib_record_sets): Likewise.
      	* df-scan.c (df_scan_alloc): Likewise.
      	* dojump.c (do_jump_by_parts_greater_rtx): Likewise.
      	* early-remat.c (early_remat::record_equiv_candidates): Likewise.
      	* emit-rtl.c (try_split): Likewise.
      	* graphite-scop-detection.c (assign_parameter_index_in_region): Likewise.
      	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
      	* ira-color.c (setup_profitable_hard_regs): Likewise.
      	* ira.c (rtx_moveable_p): Likewise.
      	* lra-eliminations.c (eliminate_regs_in_insn): Likewise.
      	* read-rtl.c (read_subst_mapping): Likewise.
      	* regrename.c (scan_rtx): Likewise.
      	* reorg.c (fill_slots_from_thread): Likewise.
      	* tree-inline.c (tree_function_versioning): Likewise.
      	* tree-ssa-reassoc.c (optimize_ops_list): Likewise.
      	* tree-ssa-sink.c (statement_sink_location): Likewise.
      	* tree-ssa-threadedge.c (thread_across_edge): Likewise.
      	* tree-vect-loop.c (vect_get_loop_niters): Likewise.
      	(vect_create_epilog_for_reduction): Likewise.
      	* tree.c (build_nonstandard_integer_type): Likewise.
      2019-06-27  Martin Liska  <mliska@suse.cz>
      
      	* class.c (adjust_clone_args): Remove obviously
      	dead assignments.
      	(dump_class_hierarchy_r): Likewise.
      	* decl.c (check_initializer): Likewise.
      	* parser.c (cp_parser_lambda_expression): Likewise.
      	* pt.c (unify_bound_ttp_args): Likewise.
      	(convert_template_argument): Likewise.
      	* rtti.c (build_headof): Likewise.
      	* typeck.c (convert_for_initialization): Likewise.
      2019-06-27  Martin Liska  <mliska@suse.cz>
      
      	* libgcov-driver-system.c (gcov_exit_open_gcda_file): Remove obviously
      	dead assignments.
      	* libgcov-util.c: Likewise.
      
      From-SVN: r272744
      45309d28
    • Martin Liska's avatar
      Fix misc stuff seen by clang-static-analyzer. · c2f7a665
      Martin Liska authored
      2019-06-27  Martin Liska  <mliska@suse.cz>
      
      	* lto-dump.c (struct symbol_entry): Add default dtor.
      	(struct variable_entry): Likewise.
      	(struct function_entry): Likewise.
      	(dump_list_functions): Release memory.
      	(dump_list_variables): Likewise.
      2019-06-27  Martin Liska  <mliska@suse.cz>
      
      	* libgcov-util.c (gcov_profile_merge): Release allocated
      	memory.
      	(calculate_overlap): Likewise.
      
      From-SVN: r272733
      c2f7a665
  16. Jun 07, 2019
    • Martin Liska's avatar
      Remove indirect call top N counter type. · e37333ba
      Martin Liska authored
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* doc/invoke.texi: Remove param.
      	* gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
      	Remove.
      	* gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
      	(GCOV_ICALL_TOPN_NCOUNTS): Likewise.
      	* params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
      	* profile.c (instrument_values): Remove
      	HIST_TYPE_INDIR_CALL_TOPN.
      	* tree-profile.c (init_ic_make_global_vars):
      	Always build __gcov_indirect_call only.
      	(gimple_init_gcov_profiler): Remove usage
      	of PARAM_INDIR_CALL_TOPN_PROFILE.
      	(gimple_gen_ic_profiler): Likewise.
      	* value-prof.c (dump_histogram_value): Likewise.
      	(stream_in_histogram_value): Likewise.
      	(gimple_indirect_call_to_profile): Likewise.
      	(gimple_find_values_to_profile): Likewise.
      	* value-prof.h (enum hist_type): Likewise.
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Remove usage of
      	_gcov_merge_icall_topn.
      	* libgcov-driver.c (gcov_sort_n_vals): Remove.
      	(gcov_sort_icall_topn_counter): Likewise.
      	(gcov_sort_topn_counter_arrays): Likewise.
      	(dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays.
      	* libgcov-merge.c (__gcov_merge_icall_topn): Remove.
      	* libgcov-profiler.c (__gcov_topn_value_profiler_body):
      	Likewise.
      	(GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove.
      	(struct indirect_call_tuple): Remove.
      	(__gcov_indirect_call_topn_profiler): Remove.
      	* libgcov-util.c (__gcov_icall_topn_counter_op): Remove.
      	* libgcov.h (gcov_sort_n_vals): Remove.
      	(L_gcov_merge_icall_topn): Likewise.
      	(__gcov_merge_icall_topn): Likewise.
      	(__gcov_indirect_call_topn_profiler): Likewise.
      
      From-SVN: r272030
      e37333ba
  17. May 17, 2019
    • Martin Sebor's avatar
      trans.c (check_inlining_for_nested_subprog): Quote reserved names. · a9c697b8
      Martin Sebor authored
      gcc/ada/ChangeLog:
      
              * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
              reserved names.
      
      gcc/brig/ChangeLog:
      
              * brigfrontend/brig-control-handler.cc
              (brig_directive_control_handler::operator): Remove trailing newline
              from a diagnostic.
              * brigfrontend/brig-module-handler.cc
              (brig_directive_module_handler::operator): Remove a duplicated space
              from a diagnostic.
      
      gcc/c/ChangeLog:
      
              * c-decl.c (start_decl): Quote keywords, operators, and
              types in diagnostics.
              (finish_decl): Same.
              * c-parser.c (c_parser_asm_statement): Same.
              (c_parser_conditional_expression): Same.
              (c_parser_transaction_cancel): Same.
              * c-typeck.c (c_common_type): Same.
              (build_conditional_expr): Same.
              (digest_init): Same.
              (process_init_element): Same.
              (build_binary_op): Same.
      
      gcc/c-family/ChangeLog:
      
              * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
              keywords, operators, and types in diagnostics.
              (handle_scalar_storage_order_attribute): Same.
              (handle_mode_attribute): Same.
              (handle_visibility_attribute): Same.
              (handle_assume_aligned_attribute): Same.
              (handle_no_split_stack_attribute): Same.
              * c-common.c (shorten_compare): Same.
              (c_common_truthvalue_conversion): Same.
              (cb_get_source_date_epoch): Same.
              * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
              in diagnostics.
              (interpret_float): Same.
              * c-omp.c (c_finish_omp_for): Same.
              * c-opts.c (c_common_post_options): Same.
              * c-pch.c (c_common_pch_pragma): Same.
              * c-pragma.c (pop_alignment): Same.
              (handle_pragma_pack): Same.
              (apply_pragma_weak): Same.
              (handle_pragma_weak): Same.
              (handle_pragma_scalar_storage_order): Same.
              (handle_pragma_redefine_extname): Same.
              (add_to_renaming_pragma_list): Same.
              (maybe_apply_renaming_pragma): Same.
              (push_visibility): Same.
              (handle_pragma_visibility): Same.
              (handle_pragma_optimize): Same.
              (handle_pragma_message): Same.
              * c-warn.c (warn_for_omitted_condop): Same.
              (lvalue_error): Same.
      
      gcc/cp/ChangeLog:
      
              * call.c (print_z_candidate): Wrap diagnostic text in a gettext
              macro.  Adjust.
              (print_z_candidates): Same.
              (build_conditional_expr_1): Quote keywords, operators, and types
              in diagnostics.
              (build_op_delete_call): Same.
              (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
              macro.
              (convert_like_real): Same.
              (convert_arg_to_ellipsis): Quote keywords, operators, and types
              in diagnostics.
              (build_over_call): Same.
              (joust): Break up an overlong line.  Wrap diagnostic text in a gettext
              macro.
              * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
              (cxx_eval_constant_expression): Quote keywords, operators, and types
              in diagnostics.
              (potential_constant_expression_1): Same.
              * cp-gimplify.c (cp_genericize_r): Same.
              * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
              in diagnostics.
              (type_promotes_to): Same.
              * decl.c (check_previous_goto_1): Same.
              (check_goto): Same.
              (start_decl): Same.
              (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
              (grok_op_properties): Quote keywords, operators, and types
              in diagnostics.
              * decl2.c (grokfield): Same.
              (coerce_delete_type): Same.
              * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
              * friend.c (do_friend): Quote C++ tokens.
              * init.c (build_new_1): Quote keywords, operators, and types
              in diagnostics.
              (build_vec_delete_1): Same.
              (build_delete): Same.
              * lex.c (parse_strconst_pragma): Same.
              (handle_pragma_implementation): Same.
              (unqualified_fn_lookup_error): Same.
              * mangle.c (write_type): Same.
              * method.c (defaulted_late_check): Avoid two consecutive punctuators.
              * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
              (pop_everything): Same.
              * parser.c (cp_lexer_start_debugging): Quote a macro name.
              in a diagnostic
              (cp_lexer_stop_debugging): Same.
              (cp_parser_userdef_numeric_literal): Quote a C++ header name
              in a diagnostic.
              (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
              and types in diagnostics.
              (cp_parser_question_colon_clause): Same.
              (cp_parser_asm_definition): Same.
              (cp_parser_init_declarator): Same.
              (cp_parser_template_declaration_after_parameters): Avoid capitalizing
              a sentence in a diagnostic.
              (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
              in diagnostics.
              (cp_parser_transaction): Same.
              * pt.c (maybe_process_partial_specialization): Replace second call
              to permerror with inform for consistency with other uses.
              (expand_integer_pack): Quote keywords, operators, and types
              in diagnostics.
              * rtti.c (get_typeid): Quote keywords, operators, and types
              in diagnostics.
              (build_dynamic_cast_1): Same.
              * semantics.c (finish_asm_stmt): Same.
              (finish_label_decl): Same.
              (finish_bases): Same.
              (finish_offsetof): Same.
              (cp_check_omp_declare_reduction): Same.
              (finish_decltype_type): Same.
              * tree.c (handle_init_priority_attribute): Same.  Add detail
              to diagnostics.
              (maybe_warn_zero_as_null_pointer_constant): Same.
              * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
              in diagnostics.
              (cp_build_unary_op): Same.
              (check_for_casting_away_constness): Same.
              (build_static_cast): Same.
              (build_const_cast_1): Same.
              (maybe_warn_about_returning_address_of_local): Same.
              (check_return_expr): Same.
              * typeck2.c (abstract_virtuals_error_sfinae): Same.
              (digest_init_r): Replace a tab with spaces in a diagnostic.
              (build_functional_cast): Quote keywords, operators, and types
              in diagnostics.
      
      gcc/d/ChangeLog:
      
              * d-builtins.cc (d_init_builtins): Quote keywords, operators,
              and types in diagnostics.
              * d-codegen.cc (get_array_length): Same.  Replace can't with cannot.
              * d-convert.cc (convert_expr): Same.
              * d-frontend.cc (getTypeInfoType): Quote an option name in
              a diagnostic.
              * d-lang.cc (d_handle_option): Same.
              (d_parse_file): Same.
              * decl.cc: Remove a trailing period from a diagnostic.
              * expr.cc: Use a directive for an apostrophe.
              * toir.cc: Quote keywords, operators, and types in diagnostics.
              * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.
      
      gcc/fortran/ChangeLog:
      
      	* gfortranspec.c (append_arg): Spell out the word "argument."
      
      gcc/ChangeLog:
      
              * config/i386/i386-expand.c (get_element_number): Quote keywords
              and other internal names in diagnostics.  Adjust other diagnostic
              formatting issues noted by -Wformat-diag.
              * config/i386/i386-features.c
              (ix86_mangle_function_version_assembler_name): Same.
              * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
              * config/i386/i386.c (ix86_function_type_abi): Same.
              (ix86_function_ms_hook_prologue): Same.
              (classify_argument): Same.
              (ix86_expand_prologue): Same.
              (ix86_md_asm_adjust): Same.
              (ix86_memmodel_check): Same.
      
      gcc/ChangeLog:
      
              * builtins.c (expand_builtin_atomic_always_lock_free): Quote
              identifiers, keywords, operators, and types in diagnostics.  Correct
              quoting, spelling, and sentence capitalization issues.
              (expand_builtin_atomic_is_lock_free): Same.
              (fold_builtin_next_arg): Same.
              * cfgexpand.c (expand_one_var): Same.
              (tree_conflicts_with_clobbers_p): Same.
              (expand_asm_stmt): Same.
              (verify_loop_structure): Same.
              * cgraphunit.c (process_function_and_variable_attributes): Same.
              * collect-utils.c (collect_execute): Same.
              * collect2.c (maybe_run_lto_and_relink): Same.
              (is_lto_object_file): Same.
              (scan_prog_file): Same.
              * convert.c (convert_to_real_1): Same.
              * dwarf2out.c (dwarf2out_begin_prologue): Same.
              * except.c (verify_eh_tree): Same.
              * gcc.c (execute): Same.
              (eval_spec_function): Same.
              (run_attempt): Same.
              (driver::set_up_specs): Same.
              (compare_debug_auxbase_opt_spec_function): Same.
              * gcov-tool.c (unlink_gcda_file): Same.
              (do_merge): Same.
              (do_rewrite): Same.
              * gcse.c (gcse_or_cprop_is_too_expensive): Same.
              * gimplify.c (gimplify_asm_expr): Same.
              (gimplify_adjust_omp_clauses): Same.
              * hsa-gen.c (gen_hsa_addr_insns): Same.
              (gen_hsa_insns_for_load): Same.
              (gen_hsa_cmp_insn_from_gimple): Same.
              (gen_hsa_insns_for_operation_assignment): Same.
              (gen_get_level): Same.
              (gen_hsa_alloca): Same.
              (omp_simple_builtin::generate): Same.
              (gen_hsa_atomic_for_builtin): Same.
              (gen_hsa_insns_for_call): Same.
              * input.c (dump_location_info): Same.
              * ipa-devirt.c (compare_virtual_tables): Same.
              * ira.c (ira_setup_eliminable_regset): Same.
              * lra-assigns.c (lra_assign): Same.
              * lra-constraints.c (lra_constraints): Same.
              * lto-streamer-in.c (lto_input_mode_table): Same.
              * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
              (merge_and_complain): Same.
              (compile_offload_image): Same.
              (compile_images_for_offload_targets): Same.
              (debug_objcopy): Same.
              (run_gcc): Same.
              (main): Same.
              * opts.c (print_specific_help): Same.
              (parse_no_sanitize_attribute): Same.
              (print_help): Same.
              (handle_param): Same.
              * plugin.c (add_new_plugin): Same.
              (parse_plugin_arg_opt): Same.
              (try_init_one_plugin): Same.
              * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
              operators, and types in diagnostics.  Correct quoting and spelling
              issues.
              * read-rtl-function.c (parse_edge_flag_token): Same.
              (function_reader::parse_enum_value): Same.
              * reg-stack.c (check_asm_stack_operands): Same.
              * regcprop.c (validate_value_data): Same.
              * sched-rgn.c (make_pass_sched_fusion): Same.
              * stmt.c (check_unique_operand_names): Same.
              * targhooks.c (default_target_option_pragma_parse): Same.
              * tlink.c (recompile_files): Same.
              * toplev.c (process_options): Same.
              (do_compile): Same.
              * trans-mem.c (diagnose_tm_1): Same.
              (ipa_tm_scan_irr_block): Same.
              (ipa_tm_diagnose_transaction): Same.
              * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
              format a tree code name in a diagnostic.
              (verify_types_in_gimple_min_lval): Same.
              (verify_types_in_gimple_reference): Same.
              (verify_gimple_call): Same.
              (verify_gimple_assign_unary): Same.
              (verify_gimple_assign_binary): Same.
              (verify_gimple_assign_ternary): Same.
              (verify_gimple_assign_single): Same.
              (verify_gimple_switch): Same.
              (verify_gimple_label): Same.
              (verify_gimple_phi): Same.
              (verify_gimple_in_seq): Same.
              (verify_eh_throw_stmt_node): Same.
              (collect_subblocks): Same.
              (gimple_verify_flow_info): Same.
              (do_warn_unused_result): Same.
              * tree-inline.c (expand_call_inline): Same.
              * tree-into-ssa.c (update_ssa): Same.
              * tree.c (tree_int_cst_elt_check_failed): Same.
              (tree_vec_elt_check_failed): Same.
              (omp_clause_operand_check_failed): Same.
              (verify_type_variant): Same.
              (verify_type): Same.
              * value-prof.c (verify_histograms): Same.
              * varasm.c (assemble_start_function): Same.
      
      gcc/lto/ChangeLog:
      
              * lto-dump.c (lto_main): Same.
              * lto.c (stream_out): Same.
      
      gcc/objc/ChangeLog:
      
              * objc-act.c (objc_begin_catch_clause): Quote keywords and options
              in diagnostics.
              (objc_build_throw_stmt): Same.
              (objc_finish_message_expr): Same.
              (get_super_receiver): Same.
              * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
              out "less than" in English./
              * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
              out "greater" in English.
      
      gcc/testsuite/ChangeLog:
      
              * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics.
              * c-c++-common/Wvarargs-2.c: Same.
              * c-c++-common/Wvarargs.c: Same.
              * c-c++-common/pr51768.c: Same.
              * c-c++-common/tm/inline-asm.c: Same.
              * c-c++-common/tm/safe-1.c: Same.
              * g++.dg/asm-qual-1.C: Same.
              * g++.dg/asm-qual-3.C: Same.
              * g++.dg/conversion/dynamic1.C: Same.
              * g++.dg/cpp0x/constexpr-89599.C: Same.
              * g++.dg/cpp0x/constexpr-cast.C: Same.
              * g++.dg/cpp0x/constexpr-shift1.C: Same.
              * g++.dg/cpp0x/lambda/lambda-conv11.C: Same.
              * g++.dg/cpp0x/nullptr04.C: Same.
              * g++.dg/cpp0x/static_assert12.C: Same.
              * g++.dg/cpp0x/static_assert8.C: Same.
              * g++.dg/cpp1y/lambda-conv1.C: Same.
              * g++.dg/cpp1y/pr79393-3.C: Same.
              * g++.dg/cpp1y/static_assert1.C: Same.
              * g++.dg/cpp1z/constexpr-if4.C: Same.
              * g++.dg/cpp1z/constexpr-if5.C: Same.
              * g++.dg/cpp1z/constexpr-if9.C: Same.
              * g++.dg/eh/goto2.C: Same.
              * g++.dg/eh/goto3.C: Same.
              * g++.dg/expr/static_cast8.C: Same.
              * g++.dg/ext/flexary5.C: Same.
              * g++.dg/ext/utf-array-short-wchar.C: Same.
              * g++.dg/ext/utf-array.C: Same.
              * g++.dg/ext/utf8-2.C: Same.
              * g++.dg/gomp/loop-4.C: Same.
              * g++.dg/gomp/macro-4.C: Same.
              * g++.dg/gomp/udr-1.C: Same.
              * g++.dg/init/initializer-string-too-long.C: Same.
              * g++.dg/other/offsetof9.C: Same.
              * g++.dg/ubsan/pr63956.C: Same.
              * g++.dg/warn/Wbool-operation-1.C: Same.
              * g++.dg/warn/Wtype-limits-Wextra.C: Same.
              * g++.dg/warn/Wtype-limits.C: Same.
              * g++.dg/wrappers/pr88680.C: Same.
              * g++.old-deja/g++.mike/eh55.C: Same.
              * gcc.dg/Wsign-compare-1.c: Same.
              * gcc.dg/Wtype-limits-Wextra.c: Same.
              * gcc.dg/Wtype-limits.c: Same.
              * gcc.dg/Wunknownprag.c: Same.
              * gcc.dg/Wunsuffixed-float-constants-1.c: Same.
              * gcc.dg/asm-6.c: Same.
              * gcc.dg/asm-qual-1.c: Same.
              * gcc.dg/cast-1.c: Same.
              * gcc.dg/cast-2.c: Same.
              * gcc.dg/cast-3.c: Same.
              * gcc.dg/cpp/source_date_epoch-2.c: Same.
              * gcc.dg/debug/pr85252.c: Same.
              * gcc.dg/dfp/cast-bad.c: Same.
              * gcc.dg/format/gcc_diag-1.c: Same.
              * gcc.dg/format/gcc_diag-11.c: Same.New test.
              * gcc.dg/gcc_diag-11.c: Same.New test.
              * gcc.dg/gnu-cond-expr-2.c: Same.
              * gcc.dg/gnu-cond-expr-3.c: Same.
              * gcc.dg/gomp/macro-4.c: Same.
              * gcc.dg/init-bad-1.c: Same.
              * gcc.dg/init-bad-2.c: Same.
              * gcc.dg/init-bad-3.c: Same.
              * gcc.dg/pr27528.c: Same.
              * gcc.dg/pr48552-1.c: Same.
              * gcc.dg/pr48552-2.c: Same.
              * gcc.dg/pr59846.c: Same.
              * gcc.dg/pr61096-1.c: Same.
              * gcc.dg/pr8788-1.c: Same.
              * gcc.dg/pr90082.c: Same.
              * gcc.dg/simd-2.c: Same.
              * gcc.dg/spellcheck-params-2.c: Same.
              * gcc.dg/spellcheck-params.c: Same.
              * gcc.dg/strlenopt-49.c: Same.
              * gcc.dg/tm/pr52141.c: Same.
              * gcc.dg/torture/pr51106-1.c: Same.
              * gcc.dg/torture/pr51106-2.c: Same.
              * gcc.dg/utf-array-short-wchar.c: Same.
              * gcc.dg/utf-array.c: Same.
              * gcc.dg/utf8-2.c: Same.
              * gcc.dg/warn-sprintf-no-nul.c: Same.
              * gcc.target/i386/asm-flag-0.c: Same.
              * gcc.target/i386/inline_error.c: Same.
              * gcc.target/i386/pr30848.c: Same.
              * gcc.target/i386/pr39082-1.c: Same.
              * gcc.target/i386/pr39678.c: Same.
              * gcc.target/i386/pr57756.c: Same.
              * gcc.target/i386/pr68843-1.c: Same.
              * gcc.target/i386/pr79804.c: Same.
              * gcc.target/i386/pr82673.c: Same.
              * obj-c++.dg/class-protocol-1.mm: Same.
              * obj-c++.dg/exceptions-3.mm: Same.
              * obj-c++.dg/exceptions-4.mm: Same.
              * obj-c++.dg/exceptions-5.mm: Same.
              * obj-c++.dg/exceptions-6.mm: Same.
              * obj-c++.dg/method-12.mm: Same.
              * obj-c++.dg/method-13.mm: Same.
              * obj-c++.dg/method-6.mm: Same.
              * obj-c++.dg/method-7.mm: Same.
              * obj-c++.dg/method-9.mm: Same.
              * obj-c++.dg/method-lookup-1.mm: Same.
              * obj-c++.dg/proto-lossage-4.mm: Same.
              * obj-c++.dg/protocol-qualifier-2.mm: Same.
              * objc.dg/call-super-2.m: Same.
              * objc.dg/class-protocol-1.m: Same.
              * objc.dg/desig-init-1.m: Same.
              * objc.dg/exceptions-3.m: Same.
              * objc.dg/exceptions-4.m: Same.
              * objc.dg/exceptions-5.m: Same.
              * objc.dg/exceptions-6.m: Same.
              * objc.dg/method-19.m: Same.
              * objc.dg/method-2.m: Same.
              * objc.dg/method-5.m: Same.
              * objc.dg/method-6.m: Same.
              * objc.dg/method-7.m: Same.
              * objc.dg/method-lookup-1.m: Same.
              * objc.dg/proto-hier-1.m: Same.
              * objc.dg/proto-lossage-4.m: Same.
      
      From-SVN: r271338
      a9c697b8
  18. Jan 01, 2019
  19. Sep 21, 2018
    • Martin Liska's avatar
      Remove arc profile histogram in non-LTO mode. · 512cc015
      Martin Liska authored
      2018-09-21  Martin Liska  <mliska@suse.cz>
      
      	* auto-profile.c (autofdo_source_profile::read): Do not
      	set sum_all.
      	(read_profile): Do not add working sets.
      	(read_autofdo_file): Remove sum_all.
      	(afdo_callsite_hot_enough_for_early_inline): Remove const
      	qualifier.
      	* coverage.c (struct counts_entry): Remove gcov_summary.
      	(read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY,
      	do not support GCOV_TAG_PROGRAM_SUMMARY.
      	(get_coverage_counts): Remove summary and expected
      	arguments.
      	* coverage.h (get_coverage_counts): Likewise.
      	* doc/gcov-dump.texi: Remove -w option.
      	* gcov-dump.c (dump_working_sets): Remove.
      	(main): Do not support '-w' option.
      	(print_usage): Likewise.
      	(tag_summary): Likewise.
      	* gcov-io.c (gcov_write_summary): Do not dump
      	histogram.
      	(gcov_read_summary): Likewise.
      	(gcov_histo_index): Remove.
      	(gcov_histogram_merge): Likewise.
      	(compute_working_sets): Likewise.
      	* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark
      	it not obsolete.
      	(GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete.
      	(GCOV_TAG_SUMMARY_LENGTH): Adjust.
      	(GCOV_HISTOGRAM_SIZE): Remove.
      	(GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise.
      	(struct gcov_summary): Simplify rapidly just
      	to runs and sum_max fields.
      	(gcov_histo_index): Remove.
      	(NUM_GCOV_WORKING_SETS): Likewise.
      	(compute_working_sets): Likewise.
      	* gcov-tool.c (print_overlap_usage_message): Remove
      	trailing empty line.
      	* gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY.
      	(output_lines): Remove program related line.
      	* ipa-profile.c (ipa_profile): Do not consider GCOV histogram.
      	* lto-cgraph.c (output_profile_summary): Do not stream GCOV
      	histogram.
      	(input_profile_summary): Do not read it.
      	(merge_profile_summaries): And do not merge it.
      	(input_symtab): Do not call removed function.
      	* modulo-sched.c (sms_schedule): Do not print sum_max.
      	* params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was
      	removed when histogram method was invented.
      	(HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO
      	mode.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Fix
      	GCOV coding style.
      	* predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION
      	and dump selected value.
      	* profile.c (add_working_set): Remove.
      	(get_working_sets): Likewise.
      	(find_working_set): Likewise.
      	(get_exec_counts): Do not work with working sets.
      	(read_profile_edge_counts): Do not inform as sum_max is removed.
      	(compute_branch_probabilities): Likewise.
      	(compute_value_histograms): Remove argument for call of
      	get_coverage_counts.
      	* profile.h: Do not make gcov_summary const.
      2018-09-21  Martin Liska  <mliska@suse.cz>
      
      	* libgcov-driver.c (crc32_unsigned): Remove.
      	(gcov_histogram_insert): Likewise.
      	(gcov_compute_histogram): Likewise.
      	(compute_summary): Simplify rapidly.
      	(merge_one_data): Do not handle PROGRAM_SUMMARY tag.
      	(merge_summary): Rapidly simplify.
      	(dump_one_gcov): Ignore gcov_summary.
      	(gcov_do_dump): Do not handle program summary, it's not
      	used.
      	* libgcov-util.c (tag_summary): Remove.
      	(read_gcda_finalize): Fix coding style.
      	(read_gcda_file): Initialize curr_object_summary.
      	(compute_summary): Remove.
      	(calculate_overlap): Remove settings of run_max.
      
      From-SVN: r264462
      512cc015
  20. Jun 07, 2018
    • Martin Liska's avatar
      Fix libgcov-driver-system bootstrap failure (PR bootstrap/86057). · 6c086e8c
      Martin Liska authored
      2018-06-07  Martin Liska  <mliska@suse.cz>
      
              PR bootstrap/86057
      	* libgcov-driver-system.c (replace_filename_variables): Use
              memcpy instead of mempcpy.
      	(allocate_filename_struct): Do not allocate filename, allocate
              prefix and set it.
      	(gcov_exit_open_gcda_file): Allocate memory for gf->filename
              here and properly copy content into it.
      	* libgcov-driver.c (struct gcov_filename): Remove max_length
              field, change prefix from size_t into char *.
      	(compute_summary): Do not calculate longest filename.
      	(gcov_do_dump): Release memory of gf.filename after each file.
      	* libgcov-util.c (compute_summary): Use new signature of
              compute_summary.
      	(calculate_overlap): Likewise.
      
      From-SVN: r261260
      6c086e8c
  21. Jun 05, 2018
    • Martin Liska's avatar
      Simplify gcov_histogram as it's used only for ARCS counters. · 7f3577f5
      Martin Liska authored
      2018-06-05  Martin Liska  <mliska@suse.cz>
      
      	* auto-profile.c (read_autofdo_file): Do not use
      	gcov_ctr_summary struct.
      	(afdo_callsite_hot_enough_for_early_inline): Likewise.
      	* coverage.c (struct counts_entry): Likewise.
      	(read_counts_file): Read just single summary entry.
      	(get_coverage_counts): Use gcov_summary struct.
      	* coverage.h (get_coverage_counts): Likewise.
      	* gcov-dump.c (dump_working_sets): Likewise.
      	(tag_summary): Dump just single summary.
      	* gcov-io.c (gcov_write_summary): Write just histogram
      	summary.
      	(gcov_read_summary): Read just single summary.
      	(compute_working_sets): Use gcov_summary struct.
      	* gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage
      	of GCOV_COUNTERS_SUMMABLE.
      	(GCOV_COUNTERS_SUMMABLE): Remove.
      	(GCOV_FIRST_VALUE_COUNTER): Replace with
      	GCOV_COUNTER_V_INTERVAL.
      	(struct gcov_ctr_summary): Remove.
      	(struct gcov_summary): Directly use fields of former
      	gcov_ctr_summary.
      	(compute_working_sets): Use gcov_summary struct.
      	* gcov.c (read_count_file): Do not use ctrs fields.
      	* lto-cgraph.c (merge_profile_summaries): Use gcov_summary
      	struct.
      	* lto-streamer.h (struct GTY): Make profile_info gcov_summary
      	struct.
      	* profile.c: Likewise.
      	* profile.h: Likewise.
      2018-06-05  Martin Liska  <mliska@suse.cz>
      
      	* libgcov-driver.c (gcov_compute_histogram): Remove usage
      	of gcov_ctr_summary.
      	(compute_summary): Do it just for a single summary.
      	(merge_one_data): Likewise.
      	(merge_summary): Simplify as we read just single summary.
      	(dump_one_gcov): Pass proper argument.
      	* libgcov-util.c (compute_one_gcov): Simplify as we have just
      	single summary.
      	(gcov_info_count_all_cold): Likewise.
      	(calculate_overlap): Likewise.
      
      From-SVN: r261189
      7f3577f5
  22. Jan 03, 2018
  23. Jan 01, 2017
  24. Sep 27, 2016
    • Martin Liska's avatar
      Remove __gcov_merge_delta (PR bootstrap/77749) · 56b653f1
      Martin Liska authored
      	PR bootstrap/77749
      	* gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
      	PR bootstrap/77749
      	* Makefile.in: Remove _gcov_merge_delta.
      	* libgcov-merge.c (void __gcov_merge_delta): Remove.
      	* libgcov-util.c (__gcov_delta_counter_op): Remove.
      	* libgcov.h: Remove declaration of __gcov_merge_delta.
      
      From-SVN: r240524
      56b653f1
  25. Aug 15, 2016
  26. Aug 09, 2016
    • Martin Liska's avatar
      Fix typo in gcov.texi · e0c8eebf
      Martin Liska authored
      	* doc/gcov.texi: Change _gcov_dump to __gcov_dump and
      	_gcov_reset to __gcov_reset.
      	* doc/gcov-tool.texi: Fix typo.
      	* libgcov-util.c: Fix typo and GNU coding style.
      
      From-SVN: r239307
      e0c8eebf
  27. Jan 04, 2016
  28. May 12, 2015
  29. Feb 27, 2015
    • Kai Tietz's avatar
      re PR libgcc/65038 ([regression 5] Unable to find ftw.h for libgcov-util.c) · 0e4a0def
      Kai Tietz authored
              PR target/65038
              * config.in: Regenerated.
              * configure: Likewise.
              * configure.ac (AC_HEADER_STDC): Added explicit.
              (AC_CHECK_HEADERS): Check for default headers  plus
              for ftw.h header.
              * libgcov-util.c (gcov_read_profile_dir): Disable use
              of ftw-function, if header is not found.
              (ftw_read_file): Likewise.
      
      From-SVN: r221059
      0e4a0def
    • Kai Tietz's avatar
      Revert change · 0824d924
      Kai Tietz authored
      From-SVN: r221058
      0824d924
    • Kai Tietz's avatar
      re PR libgcc/65038 ([regression 5] Unable to find ftw.h for libgcov-util.c) · a2a5609b
      Kai Tietz authored
      	PR target/65038
      	* config.in: Regenerated.
      	* configure: Likewise.
      	* configure.ac (AC_HEADER_STDC): Add explicit.
      	(AC_CHECK_HEADERS): Check for default headers
      	plus for ftw.h one.
      	* libgcov-util.c (gcov_read_profile_dir): Disable use
      	of ftw-function, if header not found.
      	(ftw_read_file): Don't translate if ftw header isn't
      	present.
      
      From-SVN: r221055
      a2a5609b
  30. Jan 05, 2015
Loading