How can I report what I think a compiler's frontend bug

Vincent R via Digitalmars-d digitalmars-d at puremagic.com
Sun Mar 20 15:37:37 PDT 2016


On Sunday, 20 March 2016 at 19:06:32 UTC, Johan Engelen wrote:
> On Sunday, 20 March 2016 at 17:57:12 UTC, Vincent R wrote:
>> On Sunday, 20 March 2016 at 16:16:18 UTC, Marco Leise wrote:
>>> Am Sun, 20 Mar 2016 11:28:19 +0000
>>> schrieb Vincent R <lol at dlang.org>:
>>>
>>>> Hi,
>>>> 
>>>> I would like to start a new project (a bonjour/zeroconf 
>>>> wrapper
>>>> and a gui browser using it).
>>>> For the gui part I would like to use my existing skills using
>>>> wxWidgets wrapper (wxD).
>>>> So I have started to report a problem a few months ago:
>>>> https://forum.dlang.org/post/rtarlodeojnmedgsnscb@forum.dlang.org
>>>> 
>>>> But so far(DMD32 D Compiler v2.070.2) it's still not fixed.
>>>> Do you think it will be fixed one day ?
>>>> 
>>>> Thanks
>>>
>>> Yes, I think it will be fixed one day, since - as you know
>>> by reading the very thread you linked - it is already reported
>>> and the GDC developers chimed in and considered it critical.
>>> There are also 118 open critical/blocker bugs that were
>>> reported before yours. Most of them by people here on the
>>> forums and you would need to explain to us why your bug
>>> deserves higher attention than the others (154 in total).
>>>
>>> Dlang is free open-source software and there is only a hand 
>>> full of people who are fixing bugs in the compiler just for 
>>> the sake of improving it. Most people contribute occasionally 
>>> when they are interested in a solution to a particular 
>>> problem.
>>>
>>> If you really need this fixed now ... you know the drill. I 
>>> suggest you analyze the problem and start a discussion about 
>>> it. Honestly asking why the compiler emits duplicate symbols 
>>> in a reduced test case might have yielded you some good 
>>> responses from the people who wrote the code.
>>
>> Ok first maybe it's already reported to GDC but to me it's not 
>> only a gdc bug since it also happens with dmd. So I don't know 
>> how bugs are fixed in the differents compilers but I suppose 
>> they share the same frontend (maybe I am mistaken) and in this 
>> case I prefer not to wait for gdc developers to fix it but to 
>> see if for instance some dmd developers have some time to fix 
>> it.
>> I just want to use the language and don't have time to dig 
>> inside its inner workings, so I think D is not for me. This 
>> project was the opportunity to learn the language by fixing an 
>> unmaintained library (wxD) but it's not as easy as I thought.
>
> What may speed-up bug fixing a lot is preparing a nice testcase 
> that is *as small as possible*.
> As you can see in the bug report [1], there is already a 
> testcase. It is a good start, but it is not very minimal: 
> contains a lot of comments etc. That is a lot of distraction / 
> bother (for me at least). One way to help here is to minimize 
> it further, and distill it down to the essential thing that 
> appears to trigger the bug. You can do that without knowing any 
> compiler internals.
> It can be very time consuming to make such a testcase, which 
> may discourage developers fixing of your bug.
>
> [1] https://issues.dlang.org/show_bug.cgi?id=15324

Ok I think I have found the problem, here is the testcase:

alias TreeItemId wxTreeItemId;
	public class TreeItemId : wxObject
	{
		public this(IntPtr wxobj)
		{
			super(wxobj);
		}
			
		private this(IntPtr wxobj, bool memOwn)
		{
			super(wxobj);
			this.memOwn = memOwn;
		}

		public this()
		{
			this(wxTreeItemId_ctor(), true);
		}
		
		public this(void* pItem)
		{
			this(wxTreeItemId_ctor2(pItem), true);
		}
		
		override protected void dtor() { wxTreeItemId_dtor(wxobj); }
	}

The problem is I think between public this(void* pItem) and 
public this(IntPtr wxobj)
because from what I understand they are the same.
If I comment one of the two constructors it seems to remove the 
warning about duplicated symbols. Now I need to understand what 
the original author wanted to do by declaring these 2 
constructors.



More information about the Digitalmars-d mailing list