Thread overview
[Issue 10] ARM: runnable/opover2.d fails: xopEquals fallback aborts instead of throwing Exception
Sep 25, 2012
Johannes Pfau
Sep 25, 2012
Iain Buclaw
Sep 25, 2012
Andrej
Sep 25, 2012
Iain Buclaw
Sep 25, 2012
Andrej
Sep 26, 2012
Johannes Pfau
September 25, 2012
http://gdcproject.org/bugzilla/show_bug.cgi?id=10

--- Comment #1 from Johannes Pfau <johannespfau@gmail.com> 2012-09-25 10:47:18 UTC ---
OK, this was indeed the cause. Removing pure nothrow from "equals_t equals" and "equals_t function(in void*, in void*)   xopEquals;" fixes this issue. We could hack this in druntime, but I think we need a more general solution.

Imho we shouldn't mark functions as nothrow in the backend if the complete source code is not available: So: invoking a function via pointer / delegate => not nothrow. Invoking a nothrow function where we only have a definition in a .di header => not nothrow. And if a function invokes other nothrow functions these have to be checked for assertion / throw Error as well.

The same may apply to pure. Maybe there's a better solution, but it seems that the dmd schizophrenia "throwing Errors in nothrow functions is OK" get's us into trouble here, as GCC probably doesn't set up exception handling for NOTHROW functions at all.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
September 25, 2012
http://gdcproject.org/bugzilla/show_bug.cgi?id=10

--- Comment #2 from Iain Buclaw <ibuclaw@gdcproject.org> 2012-09-25 20:22:03 UTC ---
Although I would have thought it to have the same behaviour, I can't seem to reproduce it on x86/x86_64.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
September 25, 2012
http://gdcproject.org/bugzilla/show_bug.cgi?id=10

Andrej <andrej.mitrovich@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich@gmail.com

--- Comment #3 from Andrej <andrej.mitrovich@gmail.com> 2012-09-25 20:47:25 UTC ---
Can someone please explain to me why the gdc bugzilla keeps emailing me all of a sudden? I have all email notifications disabled and I'm not on any CC list.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
September 25, 2012
http://gdcproject.org/bugzilla/show_bug.cgi?id=10

--- Comment #4 from Iain Buclaw <ibuclaw@gdcproject.org> 2012-09-25 21:06:03 UTC ---
I guess it's because it's attached to the D.gnu ML, has always been that way... D's bugzilla is attached to D.gnu too (for those few bugs still assigned to GDC).

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
September 25, 2012
http://gdcproject.org/bugzilla/show_bug.cgi?id=10

--- Comment #5 from Andrej <andrej.mitrovich@gmail.com> 2012-09-25 21:14:59 UTC ---
(In reply to comment #4)
> I guess it's because it's attached to the D.gnu ML, has always been that way... D's bugzilla is attached to D.gnu too (for those few bugs still assigned to GDC).

Oh wait, I'm sorry, I thought it was mailing me directly. Sorry for the noise. :)

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
September 26, 2012
http://gdcproject.org/bugzilla/show_bug.cgi?id=10

--- Comment #6 from Johannes Pfau <johannespfau@gmail.com> 2012-09-26 09:20:06 UTC ---
@Iain: I forgot to explicitly state that, but the test case does indeed not fail on x86/x86-64, it only fails on ARM. It probably depends on the unwinder and/or exception ABI.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.