diff options
author | Martin Liska <mliska@suse.cz> | 2019-06-11 09:55:19 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-06-11 07:55:19 +0000 |
commit | 3f2cf0365782a0d5acf637b7513dd333af43ea05 (patch) | |
tree | 848186978482b7c239f7e021806f8e461cdbdfdd /gcc | |
parent | 0d7b3e477bd705a9ff301dccd6abb729918a4551 (diff) | |
download | gcc-3f2cf0365782a0d5acf637b7513dd333af43ea05.zip gcc-3f2cf0365782a0d5acf637b7513dd333af43ea05.tar.gz gcc-3f2cf0365782a0d5acf637b7513dd333af43ea05.tar.bz2 |
Disable htable sanitization in pt.c (PR c++/87847).
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 5 | ||||
-rw-r--r-- | gcc/hash-table.h | 4 |
4 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a479644..8350a6f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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): diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 084e623..f279c7c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -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. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index ebaab27..2a62652 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -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 (); diff --git a/gcc/hash-table.h b/gcc/hash-table.h index 6c1fca3..4f5e150 100644 --- a/gcc/hash-table.h +++ b/gcc/hash-table.h @@ -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; } |