This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix ICE in modified_type_die (PR debug/80461)


On 04/19/2017 09:10 AM, Jakub Jelinek wrote:
On Wed, Apr 19, 2017 at 08:57:52AM -0600, Jeff Law wrote:
2017-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR debug/80461
	* dwarf2out.c (modified_type_die, gen_type_die_with_usage):
	Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.

	* g++.dg/debug/pr80461.C: New test.
I'm going to assume your use of TYPE_QUALS_NO_ADDR_SPACE vs TYPE_QUALS or
TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC is correct.

I don't really know.  For address space quals I think one would need to have
pointer-to-members in different code address spaces, not sure if we support
anything like that.  And atomic is C only which doesn't have
pointer-to-members.
To put it another way, in your message you indicated that modified_type_die expects either an unqualified type or the type itself and that your patch makes sure we only pick unqualified types.

Using TYPE_QUALS_NO_ADDR_SPACE like you have seems to conflict with those statements. So I'm curious why you allow address space qualifiers to pass through, but no others. It just seems odd.

I'm guessing you're doing that because modified_type_die ignores address space qualifiers (and it only conditionally ignores atomics or restrict based on dwarf level). But it'd be good to get a confirmation that's what you were thinking.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]