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

Reply via email to