Disable htable sanitization in pt.c (PR c++/87847).
authorMartin Liska <mliska@suse.cz>
Tue, 11 Jun 2019 07:55:19 +0000 (09:55 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 11 Jun 2019 07:55:19 +0000 (07:55 +0000)
2019-06-11  Martin Liska  <mliska@suse.cz>

PR c++/87847
* hash-table.h: Extend create_gcc, add one parameter
that is passed into hash_table::hash_table.
2019-06-11  Martin Liska  <mliska@suse.cz>

PR c++/87847
* pt.c (init_template_processing): Disable hash table
sanitization for decl_specializations and type_specializations.

From-SVN: r272144

gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/hash-table.h

index a479644..8350a6f 100644 (file)
@@ -1,3 +1,9 @@
+2019-06-11  Martin Liska  <mliska@suse.cz>
+
+       PR c++/87847
+       * hash-table.h: Extend create_gcc, add one parameter
+       that is passed into hash_table::hash_table.
+
 2019-06-10  Uroš Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
index 084e623..f279c7c 100644 (file)
@@ -1,3 +1,9 @@
+2019-06-11  Martin Liska  <mliska@suse.cz>
+
+       PR c++/87847
+       * pt.c (init_template_processing): Disable hash table
+       sanitization for decl_specializations and type_specializations.
+
 2019-06-10  Jason Merrill  <jason@redhat.com>
 
        * constexpr.c (free_constructor): New.
index ebaab27..2a62652 100644 (file)
@@ -28316,8 +28316,9 @@ declare_integer_pack (void)
 void
 init_template_processing (void)
 {
-  decl_specializations = hash_table<spec_hasher>::create_ggc (37);
-  type_specializations = hash_table<spec_hasher>::create_ggc (37);
+  /* FIXME: enable sanitization (PR87847) */
+  decl_specializations = hash_table<spec_hasher>::create_ggc (37, false);
+  type_specializations = hash_table<spec_hasher>::create_ggc (37, false);
 
   if (cxx_dialect >= cxx11)
     declare_integer_pack ();
index 6c1fca3..4f5e150 100644 (file)
@@ -386,10 +386,10 @@ public:
 
   /* Create a hash_table in gc memory.  */
   static hash_table *
-  create_ggc (size_t n CXX_MEM_STAT_INFO)
+  create_ggc (size_t n, bool sanitize_eq_and_hash = true CXX_MEM_STAT_INFO)
   {
     hash_table *table = ggc_alloc<hash_table> ();
-    new (table) hash_table (n, true, true, GATHER_STATISTICS,
+    new (table) hash_table (n, true, sanitize_eq_and_hash, GATHER_STATISTICS,
                            HASH_TABLE_ORIGIN PASS_MEM_STAT);
     return table;
   }