Hi! On Thu, 29 Sep 2016 17:29:29 +0200, Richard Biener <richard.guent...@gmail.com> wrote: > On September 29, 2016 4:54:36 PM GMT+02:00, Thomas Schwinge > <tho...@codesourcery.com> wrote: > >While working on something else, I found LTO_STREAMER_DEBUG broken. > >Enabling (#define) gcc/lto-stream.h:LTO_STREAMER_DEBUG, some further > >checking is done on the LTO streamer (writer/reader), and some > >additional > >debugging hooks are provided. In the end, I didn't use this facility > >for > >my debugging, but here is anyway the patch to un-break it. Not yet > >thoroughly tested, will do that later -- OK for trunk then? > > Works for me though I'd expect the checking code to be broken (I foubd it > hardly useful)
;-) Well, I just filed <https://gcc.gnu.org/PR77954> "LTO_STREAMER_DEBUG ICE with OpenMP SIMD clones". Without changes committed in r241046: commit 2e5bb449b8f67130b235ea4e3643929041bb495e Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed Oct 12 13:18:36 2016 +0000 Fix LTO_STREAMER_DEBUG build gcc/ * lto-streamer.c: Fix LTO_STREAMER_DEBUG build. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241046 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 2 ++ gcc/lto-streamer.c | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git gcc/ChangeLog gcc/ChangeLog index c66b7a7..e709adb 100644 --- gcc/ChangeLog +++ gcc/ChangeLog @@ -1,5 +1,7 @@ 2016-10-12 Thomas Schwinge <tho...@codesourcery.com> + * lto-streamer.c: Fix LTO_STREAMER_DEBUG build. + * dwarf2out.c (dwarf2_lineno_debug_hooks): Use dwarf2out_assembly_start. diff --git gcc/lto-streamer.c gcc/lto-streamer.c index bfde1fe..a44a916 100644 --- gcc/lto-streamer.c +++ gcc/lto-streamer.c @@ -267,23 +267,23 @@ struct tree_hash_entry struct tree_entry_hasher : nofree_ptr_hash <tree_hash_entry> { - static inline hashval_t hash (const value_type *); - static inline bool equal (const value_type *, const compare_type *); + static inline hashval_t hash (const tree_hash_entry *); + static inline bool equal (const tree_hash_entry *, const tree_hash_entry *); }; inline hashval_t -tree_entry_hasher::hash (const value_type *e) +tree_entry_hasher::hash (const tree_hash_entry *e) { return htab_hash_pointer (e->key); } inline bool -tree_entry_hasher::equal (const value_type *e1, const compare_type *e2) +tree_entry_hasher::equal (const tree_hash_entry *e1, const tree_hash_entry *e2) { return (e1->key == e2->key); } -static hash_table<tree_hash_entry> *tree_htab; +static hash_table<tree_entry_hasher> *tree_htab; #endif /* Initialization common to the LTO reader and writer. */ @@ -299,7 +299,7 @@ lto_streamer_init (void) streamer_check_handled_ts_structures (); #ifdef LTO_STREAMER_DEBUG - tree_htab = new hash_table<tree_hash_entry> (31); + tree_htab = new hash_table<tree_entry_hasher> (31); #endif } Grüße Thomas