From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 39982 invoked by alias); 31 Oct 2018 09:40:12 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 39958 invoked by uid 89); 31 Oct 2018 09:40:12 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=sooner, gfc_namespace*, gfc_parse_file, UD:f95-lang.c X-HELO: paperclip.tbsaunde.org Received: from tbsaunde.org (HELO paperclip.tbsaunde.org) (66.228.47.254) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 31 Oct 2018 09:40:10 +0000 Received: from chair (pool-74-108-26-232.nycmny.fios.verizon.net [74.108.26.232]) by paperclip.tbsaunde.org (Postfix) with ESMTPSA id EB52CC0AE; Wed, 31 Oct 2018 09:40:08 +0000 (UTC) Date: Wed, 31 Oct 2018 10:00:00 -0000 From: Trevor Saunders To: Martin Li??ka Cc: gcc-patches@gcc.gnu.org, Nathan Sidwell , Jason Merrill , Jakub Jelinek , Paul Richard Thomas , Martin Jambor Subject: Re: hash-table violation in gcc/fortran/trans-decl.c Message-ID: <20181031094007.GB19800@chair> References: <23ffca95-6492-e609-aebb-bbdd83b5185d@suse.cz> <280d27b8-3f0e-67da-3e23-dc4df5c3abc5@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <280d27b8-3f0e-67da-3e23-dc4df5c3abc5@suse.cz> User-Agent: Mutt/1.10.1 (2018-07-13) X-SW-Source: 2018-10/txt/msg02006.txt.bz2 On Tue, Oct 30, 2018 at 11:07:16AM +0100, Martin Li??ka wrote: > On 10/29/18 12:04 PM, Martin Li??ka wrote: > > 2) gfc_find_module > > > > $ ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/coarray/alloc_comp_2.f90 -fcoarray=single -fchecking=3 > > hash table checking failed: equal operator returns true for a pair of values with a different hash valuef951: internal compiler error: in find_slot_with_hash, at hash-table.h:905 > > 0x8e5e86 hash_table::find_slot_with_hash(char const* const&, unsigned int, insert_option) > > /home/marxin/Programming/gcc/gcc/hash-table.h:905 > > 0x8e2c2c gfc_find_module(char const*) > > /home/marxin/Programming/gcc/gcc/fortran/trans-decl.c:4865 > > 0x8e4f42 gfc_generate_module_vars(gfc_namespace*) > > /home/marxin/Programming/gcc/gcc/fortran/trans-decl.c:5475 > > 0x8b8d7e gfc_generate_module_code(gfc_namespace*) > > /home/marxin/Programming/gcc/gcc/fortran/trans.c:2190 > > 0x868427 translate_all_program_units > > /home/marxin/Programming/gcc/gcc/fortran/parse.c:6112 > > 0x868427 gfc_parse_file() > > /home/marxin/Programming/gcc/gcc/fortran/parse.c:6328 > > 0x8b19cb gfc_be_parse_file > > /home/marxin/Programming/gcc/gcc/fortran/f95-lang.c:204 > > This one is real issue introduced in r216127, I'll post it to corresponding mailing list > after testing: Yeah, sorry and lgtm. I wonder if we could make htab_hash_string take a const char * to catch this sooner? Trev > > diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c > index 88f9f570725..e8da9e11d22 100644 > --- a/gcc/fortran/trans-decl.c > +++ b/gcc/fortran/trans-decl.c > @@ -4825,7 +4825,7 @@ struct module_hasher : ggc_ptr_hash > { > typedef const char *compare_type; > > - static hashval_t hash (module_htab_entry *s) { return htab_hash_string (s); } > + static hashval_t hash (module_htab_entry *s) { return htab_hash_string (s->name); } > static bool > equal (module_htab_entry *a, const char *b) > { > > Martin