[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread ibuclaw at gdcproject dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

Iain Buclaw  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Iain Buclaw  ---
Fix committed

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

--- Comment #6 from CVS Commits  ---
The releases/gcc-9 branch has been updated by Iain Buclaw
:

https://gcc.gnu.org/g:13ec4505c04c6cadfc22ec1b23fd6edf745ca183

commit r9-9216-g13ec4505c04c6cadfc22ec1b23fd6edf745ca183
Author: Iain Buclaw 
Date:   Tue Feb 2 00:52:49 2021 +0100

d: Fix junk in generated symbol on powerpc64-*-* [PR98921]

This adds a special formatter to OutBuffer to handle formatted printing
of integers, a common case.  The replacement is faster and safer.

In dmangle.c, it also gets rid of a number of problematic casts, as seen
on powerpc64 targets.

gcc/d/ChangeLog:

PR d/98921
* dmd/dmangle.c (Mangler::visit (TypeSArray *)): Use buf->print
  to format integer value.
(Mangler::visit (TypeIdentifier *)): Likewise.
(Mangler::toBuffer): Likewise.
(Mangler::visit (IntegerExp *)): Likewise.
(Mangler::visit (StringExp *)): Likewise.
(Mangler::visit (ArrayLiteralExp *)): Likewise.
(Mangler::visit (AssocArrayLiteralExp *)): Likewise.
(Mangler::visit (StructLiteralExp *)): Likewise.
* dmd/root/outbuffer.c (OutBuffer::print): New function.
* dmd/root/outbuffer.h (OutBuffer::print): Declare.

(cherry picked from commit 6a481021a65d6237b0c509a76fcd9c1f32c4558e)

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

--- Comment #5 from CVS Commits  ---
The releases/gcc-10 branch has been updated by Iain Buclaw
:

https://gcc.gnu.org/g:38c2d9598b1b2f23b24f96fd8f58a89344b93609

commit r10-9334-g38c2d9598b1b2f23b24f96fd8f58a89344b93609
Author: Iain Buclaw 
Date:   Tue Feb 2 00:52:49 2021 +0100

d: Fix junk in generated symbol on powerpc64-*-* [PR98921]

This adds a special formatter to OutBuffer to handle formatted printing
of integers, a common case.  The replacement is faster and safer.

In dmangle.c, it also gets rid of a number of problematic casts, as seen
on powerpc64 targets.

gcc/d/ChangeLog:

PR d/98921
* dmd/dmangle.c (Mangler::visit (TypeSArray *)): Use buf->print
  to format integer value.
(Mangler::visit (TypeIdentifier *)): Likewise.
(Mangler::toBuffer): Likewise.
(Mangler::visit (IntegerExp *)): Likewise.
(Mangler::visit (StringExp *)): Likewise.
(Mangler::visit (ArrayLiteralExp *)): Likewise.
(Mangler::visit (AssocArrayLiteralExp *)): Likewise.
(Mangler::visit (StructLiteralExp *)): Likewise.
* dmd/root/outbuffer.c (OutBuffer::print): New function.
* dmd/root/outbuffer.h (OutBuffer::print): Declare.

(cherry picked from commit 6a481021a65d6237b0c509a76fcd9c1f32c4558e)

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

--- Comment #4 from CVS Commits  ---
The master branch has been updated by Iain Buclaw :

https://gcc.gnu.org/g:6a481021a65d6237b0c509a76fcd9c1f32c4558e

commit r11-7027-g6a481021a65d6237b0c509a76fcd9c1f32c4558e
Author: Iain Buclaw 
Date:   Tue Feb 2 00:52:49 2021 +0100

d: Fix junk in generated symbol on powerpc64-*-* [PR98921]

This adds a special formatter to OutBuffer to handle formatted printing
of integers, a common case.  The replacement is faster and safer.

In dmangle.c, it also gets rid of a number of problematic casts, as seen
on powerpc64 targets.

Reviewed-on: https://github.com/dlang/dmd/pull/12174

gcc/d/ChangeLog:

PR d/98921
* dmd/MERGE: Merge upstream dmd 5e2a81d9c.

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread ibuclaw at gdcproject dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

--- Comment #3 from Iain Buclaw  ---
(In reply to Andreas Schwab from comment #2)
> diff --git a/gcc/d/dmd/dmangle.c b/gcc/d/dmd/dmangle.c
> index f6eee52afbf..73d9ac5367f 100644
> --- a/gcc/d/dmd/dmangle.c
> +++ b/gcc/d/dmd/dmangle.c
> @@ -822,7 +822,7 @@ public:
>  void visit(IntegerExp *e)
>  {
>  if ((sinteger_t)e->value < 0)
> -buf->printf("N%lld", -e->value);
> +buf->printf("N%llu", -e->value);
>  else
>  buf->printf("i%lld",  e->value);
>  }

Thanks!

The upstream D implementation of the compiler adds a special formatter for
printing of integers.  I've tested that a backport of it on powerpc64le-linux
and confirmed it fixes this pr.

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread schwab--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

--- Comment #2 from Andreas Schwab  ---
diff --git a/gcc/d/dmd/dmangle.c b/gcc/d/dmd/dmangle.c
index f6eee52afbf..73d9ac5367f 100644
--- a/gcc/d/dmd/dmangle.c
+++ b/gcc/d/dmd/dmangle.c
@@ -822,7 +822,7 @@ public:
 void visit(IntegerExp *e)
 {
 if ((sinteger_t)e->value < 0)
-buf->printf("N%lld", -e->value);
+buf->printf("N%llu", -e->value);
 else
 buf->printf("i%lld",  e->value);
 }

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread schwab--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

Andreas Schwab  changed:

   What|Removed |Added

 CC||seurer at gcc dot gnu.org

--- Comment #1 from Andreas Schwab  ---
*** Bug 98923 has been marked as a duplicate of this bug. ***

[Bug d/98921] [11 regression] libphobos: junk in generated symbol

2021-02-01 Thread schwab--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98921

Andreas Schwab  changed:

   What|Removed |Added

   Target Milestone|--- |11.0