[Bug 106] [ARM] pragma(mangle) not working if -fsection-anchors is enabled

gdc-bugzilla at gdcproject.org gdc-bugzilla at gdcproject.org
Sat Feb 15 11:04:51 PST 2014


http://bugzilla.gdcproject.org/show_bug.cgi?id=106

Iain Buclaw <ibuclaw at gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #2 from Iain Buclaw <ibuclaw at gdcproject.org> 2014-02-15 19:04:51 GMT ---
(In reply to comment #1)
> Problem #2:
> 
> D main ()
> {
>   int D.2453;
>   struct  D.2452;
>   int test_______________________________________9.0;
>   int test_______________________________________9.0_1;
>   int _2;
> }
> 
> 
> The DECL_NAME should really be the language name, not the DECL_ASSEMBLER_NAME.

https://github.com/D-Programming-GDC/GDC/commit/79ebb4c0012485528cbf900b8bc8280423a872ff

Now puts out:

D main ()
{
  int D.2453;
  struct  D.2452;
  int test.test9_1_e.0;
  int test.test9_1_e.0_1;
  int _2;
/* ... */
}


When fixing this, I found that d_comdat_group was calling DECL_ASSEMBLER_NAME
before one had been set for var decls, oops.  That is not good if the DECL_NAME
has unfriendly symbols in it (eg: "quotes").

https://github.com/D-Programming-GDC/GDC/commit/64b4aa77a5d1e7254f783f9b835df216d85a3f0b

However, the code logic in -fdump-tree-optimized-asmname is still not right:

{
  <bb 2>:
  test_эльфийские_письмена_9 = 42;
  test.test9_1_e.0_1 = test_эльфийские_письмена_9;
  if (test.test9_1_e.0_1 == 42)
}


So finally:

https://github.com/D-Programming-GDC/GDC/commit/942298f595e95cc60d75fa111645498420f6aa2e

{
  <bb 2>:
  *test_эльфийские_письмена_9 = 42;
  test.test9_1_e.0_1 = *test_эльфийские_письмена_9;
  if (test.test9_1_e.0_1 == 42)
}


Fixed!

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


More information about the D.gnu mailing list