[Bug d/93038] Missing dependencies in depfile for imported files at compilation time

2020-03-13 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93038

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2020-03-13
 Status|UNCONFIRMED |ASSIGNED
 CC||ibuclaw at gcc dot gnu.org

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Yes, I have too noticed this and have a fix in the gdc development branch, will
backport it to gcc trunk as soon as I cherry-pick out parts not related to
supporting the self-hosted front-end.

[Bug d/91561] [Regression] Internal Compiler Error: type ‘ubyte[]’ can not be mapped to C++

2020-03-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91561

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
The old behaviour silently accepting was a deviation of the mainline dmd
front-end.  D arrays are not compatible with C++, so there is no point in
pretending they can be.

As of writing, upstream dmd still reports the error as an ICE, despite having
been a couple years now that I've tried to downgrade the severity from ICE to
general error.

The consensus when I last checked was that it should be caught earlier in
semantic, not in the mangling stage.  However no one has written a patch to do
this yet.

[Bug d/92216] GDC generate duplicate symbols when mixins and interfaces are used to gather

2020-03-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92216

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org
 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2020-03-16

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Hi Daniel,

Thanks for the patch, however instead I've gone with just marking the thunks as
non-public.  This is because the body generated for such thunks is different
from the case where the thunk and target function are in the same compilation
unit.

[Bug d/92216] GDC generate duplicate symbols when mixins and interfaces are used to gather

2020-03-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92216

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
Fix committed.

[Bug d/92792] [10 Regression] symbols dropped from libphobos

2020-03-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92792

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org
 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
After speaking with Matthias, the soversion was bumped.

[Bug d/92309] Assignment to anonymous union member corrupts sibling members in struct

2020-03-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92309

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Resolution|--- |FIXED
 CC||ibuclaw at gcc dot gnu.org
 Status|ASSIGNED|RESOLVED

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Fix committed to mainline.

[Bug lto/91027] [10 regression] SEGV in hash_table::find_slot_with_hash

2020-03-20 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org
 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #13 from ibuclaw at gcc dot gnu.org ---
I just went with setting TYPE_CXX_ODR_P.

[Bug d/94623] ice for ./gdc.test/compilable/interpret3.d

2020-04-20 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94623

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #17 from ibuclaw at gcc dot gnu.org ---
(In reply to David Binderman from comment #16)
> 
> I am struggling to understand what this output means:
> 
> binary   
> /home/dcb/gcc/results.20200420.d5/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/d21
> version   v2.076.1
> predefs   GNU D_Version2 LittleEndian GNU_DWARF2_Exceptions
> GNU_StackGrowsDown GNU_InlineAsm D_LP64 assert D_ModuleInfo D_Exceptions
> D_TypeInfo all X86_64 D_HardFloat Posix linux CRuntime_Glibc CppRuntime_Gcc
> parse interpret3
> importall interpret3
> importobject  (/usr/include/d/object.d)
> importcore.internal.hash  (/usr/include/d/core/internal/hash.d)
> importcore.internal.traits(/usr/include/d/core/internal/traits.d)
> importcore.internal.convert   (/usr/include/d/core/internal/convert.d)
> semantic  interpret3
> importcore.stdc.string(/usr/include/d/core/stdc/string.d)


It's picking up the modules from a system location.  These most certainly don't
belong to the gdc compiler.  Which bad package maintainer is installing
compiler-specific modules in a common location? LDC?

[Bug d/90719] libphobos.phobos_shared/std/file.d FAILs on 32-bit Solaris

2020-04-29 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90719

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #9 from ibuclaw at gcc dot gnu.org ---
(In reply to Rainer Orth from comment #8)
> Unfortunately, something went wrong here: while my original patch removed
> st_pad3
> from the non-D_LP64 struct stat64_t, yours changed stat32_t instead, which
> leaves
> the affected test broken:
> 
> FAIL: libphobos.phobos_shared/std/file.d execution test

Oops, I must have both misunderstood your original bug report (you mentioned
stat32_t) *and* the patch applied against the wrong struct.

Fix sent here: https://github.com/dlang/druntime/pull/3078

I'll downstream it (again) as soon as it's in.

For GCC-11, I should really finish off some automated C header -> D conversion
tool, as you know all too well the pains of maintaining the current stdc and
sys packages in D runtime.

[Bug lto/91027] [10 regression] SEGV in hash_table::find_slot_with_hash

2019-11-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027

--- Comment #6 from ibuclaw at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #2)
> 
> I am not really fluent with d.  Does d have something like ODR?
> If it doesn't then we need to arrange free_lang data to not consider d
> types to be C++ ODR types.
> 
> The type seems to not be seen by free lang data which by itself is
> confusing.
> 

In principle, yes, D does have ODR.  Each source file corresponds to one module
that provides a namespace for all symbols defined within, and each module
should be unique in the entire compilation unit (module collision checking at
runtime asserts that this is the case).

[Bug lto/91027] [10 regression] SEGV in hash_table::find_slot_with_hash

2019-11-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027

--- Comment #7 from ibuclaw at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #3)
> Hi,
> this patch triggers another confusion in ipa-devirt.
> It tries to build type inheritnace graph but since D frotnend produces
> only functions with DECL_VIRTUAL but no BINFOs and other things it
> segfaults eventually.
> 
> Working around it makes it to work. So this adds new question why D
> frontend needs to set DECL_VIRTUAL?
>

[Bug lto/91027] [10 regression] SEGV in hash_table::find_slot_with_hash

2019-11-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027

--- Comment #8 from ibuclaw at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #3)
> Hi,
> this patch triggers another confusion in ipa-devirt.
> It tries to build type inheritnace graph but since D frotnend produces
> only functions with DECL_VIRTUAL but no BINFOs and other things it
> segfaults eventually.
> 
> Working around it makes it to work. So this adds new question why D
> frontend needs to set DECL_VIRTUAL?
> 

BINFO to represent the class inheritance chain is generated by the D frontend,
but nothing else is included.

DECL_VIRTUAL_P is set on vtblZ global symbols, the __vptr field of class
objects, and all virtual functions, as is documented in tree.h.

There's the ability to bind to extern(C++) in the language (i.e: extern(C++)
class CPPclass { }), so I think in general, the D front-end should be
generating trees that have equivalence to the C++ front-end.  If there's
information missing, I think that should be included to not trip up LTO.

[Bug demangler/92797] cplus_demangle() produces huge amount of output (on trunk)

2020-02-07 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92797

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
At what point does the D demangler kick in?  It should only attempt to parse
symbols that begin with '_D'.

[Bug d/91666] _builtin function no work with GDC

2020-02-07 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91666

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Either the function signature on MinGW-W64 is untranslatable into valid D, or
the gcc.builtins module is not imported in any of the code paths that are
enabled by MinGW.

It's most likely to be the latter.

[Bug demangler/92797] cplus_demangle() produces huge amount of output (on trunk)

2020-02-07 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92797

--- Comment #7 from ibuclaw at gcc dot gnu.org ---
(In reply to Andrew Pinski from comment #6)
> (In reply to ibuclaw from comment #4)
> > At what point does the D demangler kick in?  It should only attempt to parse
> > symbols that begin with '_D'.
> 
> Huh? D mangles symbols also starting with _Z.  Why do you think D uses _D?

https://dlang.org/spec/abi.html#name_mangling

Maybe we're talking about two different things, and I got cc'd in incorrectly.

[Bug d/91916] Maybe a dead code in socket.d

2020-02-08 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91916

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
(In reply to Martin Liška from comment #2)
> @Iain: ping^2

Hi, sorry for the late pick-up, I guess the dead code must come from this line.

https://github.com/dlang/phobos/blob/25f38e4b7f2eb4814198ef38dbc44b6ac7b92f78/std/socket.d#L3248-L3251

And whoever wrote the std.socket interface decided to mix multiple different C
enums into one type, so of course there'll be a clash between values.

It does serve to confuse if someone passes a non-time related socket option to
that particular get/setOption override, as the exception message will point to
another value than the one they have actually passed.  There is otherwise no
risk of there actually being any problem in production code.

[Bug d/88039] gdc.test/compilable/ddoc12.d FAILs

2018-12-09 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88039

--- Comment #8 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Dec  9 19:55:54 2018
New Revision: 266933

URL: https://gcc.gnu.org/viewcvs?rev=266933&root=gcc&view=rev
Log:
Generate and scan documentation output in Ddoc tests.

The tests in gdc.test/compilable/ddoc*.d don't require the module to be
compiled all the way down to object code.  Instead, only compile the
test sources with -fdoc, and scan the generated html content.

gcc/testsuite/ChangeLog:

PR d/88039
* gdc.test/gdc-test.exp (gdc-convert-args): Handle -D.
(dmd2dg): Check generated html in ddoc tests.
(gdc-do-test): Set dg-do-what-default to compile for ddoc tests.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gdc.test/gdc-test.exp

[Bug d/87824] x86_64-linux multilib issues

2019-01-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87824

--- Comment #18 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Jan 16 20:40:21 2019
New Revision: 267985

URL: https://gcc.gnu.org/viewcvs?rev=267985&root=gcc&view=rev
Log:
[D] Fix failing EH execution test on i386.

Turn off partitioning unless it was explicitly requested, as it doesn't
work with D exception chaining, where personality routines use LSDA to
determine whether two thrown exceptions are in the same context.

The following distills what was failing in the D testsuite.
```
try {
  try {
fn();  // throws "1"
  }
  finally {
throw new Exception("2");
  }
}
catch (Exception e) {
  assert(e.msg == "1");
  assert(e.next.msg == "2");
}
```

gcc/d/ChangeLog:

PR d/87824
* d-lang.cc (d_post_options): Disable implicit
-forder-blocks-and-partition.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-lang.cc

[Bug d/89042] ICE in visit, at d/decl.cc:597

2019-01-26 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89042

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Jan 26 21:07:15 2019
New Revision: 268304

URL: https://gcc.gnu.org/viewcvs?rev=268304&root=gcc&view=rev
Log:
Fix ICE when handling void initialized manifest constants.

gcc/d/ChangeLog:

2019-01-26  Iain Buclaw  

PR d/89042
* decl.cc (DeclVisitor::visit(VarDeclaration)): Don't assert if
handling a void initialized manifest constant.

gcc/testsuite/ChangeLog:

2019-01-26  Iain Buclaw  

PR d/89042
* gdc.dg/pr89042a.d: New test.
* gdc.dg/pr89042b.d: New test.

Added:
trunk/gcc/testsuite/gdc.dg/pr89042a.d
trunk/gcc/testsuite/gdc.dg/pr89042b.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/decl.cc
trunk/gcc/testsuite/ChangeLog

[Bug d/90893] ODR violation

2019-08-09 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90893

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Aug 10 05:25:44 2019
New Revision: 274249

URL: https://gcc.gnu.org/viewcvs?rev=274249&root=gcc&view=rev
Log:
Fix ODR violation in d/runtime.cc

gcc/d/ChangeLog:

PR d/90893
* runtime.cc (enum libcall_type): Rename to...
(enum d_libcall_type): ...this.
(get_libcall_type): Use d_libcall_type.
(build_libcall_decl): Likewise.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/runtime.cc

[Bug d/91238] internal compiler error: in add_expr, at tree.c:7794

2019-08-10 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91238

--- Comment #5 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Aug 10 14:11:49 2019
New Revision: 274253

URL: https://gcc.gnu.org/viewcvs?rev=274253&root=gcc&view=rev
Log:
d: Fix internal compiler error: in add_expr, at tree.c:7794

gcc/d/ChangeLog:

PR d/91238
* d-codegen.cc (build_address): If taking the address of a CALL_EXPR,
wrap it in a TARGET_EXPR.

gcc/testsuite/ChangeLog:

PR d/91238
* gdc.dg/pr91238.d: New test.

Added:
trunk/gcc/testsuite/gdc.dg/pr91238.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-codegen.cc
trunk/gcc/testsuite/ChangeLog

[Bug d/90601] ICE: gimplification failed (gimplify.c at 13436)

2019-08-10 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90601

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Aug 11 06:53:14 2019
New Revision: 274263

URL: https://gcc.gnu.org/viewcvs?rev=274263&root=gcc&view=rev
Log:
d: Fix ICE: gimplification failed (gimplify.c at 13436)

The expression that caused the ICE

++(a += 1.0);

The D front-end rewrites and applies implicit type conversions so the
expression gets simplified as

(int)((double) a += 1.0) += 1

The codegen pass would subsequently generate the following invalid code

(int)(double) a = (int)((double) a + 1.0) + 1

The LHS expression `(int)(double) a', represented as a FIX_TRUNC_EXPR
being what trips as it is not a valid lvalue for assignment.

While LHS casts are stripped away, convert_expr adds a double cast
because it converts the expression to its original type before
converting it to its target type.  There is no valid reason why this is
done, so it has been removed.

gcc/d/ChangeLog:

PR d/90601
* d-convert.cc (convert_expr): Don't convert an expression to its
original front-end type before converting to its target type.

gcc/testsuite/ChangeLog:

PR d/90601
* gdc.dg/pr90601.d: New test.

Added:
trunk/gcc/testsuite/gdc.dg/pr90601.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-convert.cc
trunk/gcc/testsuite/ChangeLog

[Bug d/90444] internal compiler error: in d_init_builtins, at d/d-builtins.cc:1121

2019-08-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90444

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Aug 21 07:53:05 2019
New Revision: 274765

URL: https://gcc.gnu.org/viewcvs?rev=274765&root=gcc&view=rev
Log:
d: Fix internal compiler error: in d_init_builtins, at d/d-builtins.cc:1121

gcc/d/ChangeLog:

PR d/90444
* d-builtins.cc (build_frontend_type): Build anonymous RECORD_TYPE
nodes as well, push all fields to the struct members.
(d_build_builtins_module): Push anonymous va_list structs to the
builtins module, naming them __builtin_va_list.
(d_init_builtins): Use sorry instead of gcc_unreachable if va_list did
not succeed in being represented as a D type.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-builtins.cc

[Bug d/90445] internal compiler error: in d_build_c_type_nodes, at d/d-builtins.cc:783

2019-08-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90445

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Aug 21 07:53:15 2019
New Revision: 274766

URL: https://gcc.gnu.org/viewcvs?rev=274766&root=gcc&view=rev
Log:
d: Fix internal compiler error: in d_build_c_type_nodes, at d/d-builtins.cc:783

gcc/d/ChangeLog:

PR d/90445
* d-builtins.cc (d_build_c_type_nodes): Test UINTMAX_TYPE for setting
uintmax_type_node.  Set signed_size_type_node as the signed_type_for
size_type_node.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-builtins.cc

[Bug d/90446] ICE: Segmentation fault in build_function_type at gcc/tree.c:8539

2019-08-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90446

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Aug 21 07:53:25 2019
New Revision: 274767

URL: https://gcc.gnu.org/viewcvs?rev=274767&root=gcc&view=rev
Log:
d: Fix ICE: Segmentation fault in build_function_type at gcc/tree.c:8539

gcc/d/ChangeLog:

PR d/90446
* d-lang.cc (d_type_for_mode): Check for all internal __intN types.
(d_type_for_size): Likewise.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-lang.cc

[Bug d/88722] :1: internal compiler error: in register_moduleinfo, at d/modules.cc:40 2

2019-08-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88722

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Aug 21 07:53:44 2019
New Revision: 274769

URL: https://gcc.gnu.org/viewcvs?rev=274769&root=gcc&view=rev
Log:
d: Partially fix ICE: in register_moduleinfo, at d/modules.cc:40

gcc/d/ChangeLog:

PR d/88722
* modules.cc: Include diagnostic.h.
(register_moduleinfo): Use sorry instead of gcc_assert for targets
without named sections.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/modules.cc

[Bug d/91339] libphobos: ftbfs when the path contains '~'

2019-08-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91339

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Aug 21 07:54:06 2019
New Revision: 274771

URL: https://gcc.gnu.org/viewcvs?rev=274771&root=gcc&view=rev
Log:
PR d/91339
d/dmd: Merge upstream dmd b37a537d3

Fixes the error: cannot find source code for runtime library file
'object.d' when the path contains '~'.

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

Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/root/filename.c

[Bug d/88127] Many gdc.dg testsuite failures due to undefined reference to qsort_r

2019-02-18 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88127

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Mon Feb 18 23:29:39 2019
New Revision: 268999

URL: https://gcc.gnu.org/viewcvs?rev=268999&root=gcc&view=rev
Log:
libphobos: Detect if qsort_r is available

Merges upstream druntime bbfb58e8.

libphobos/ChangeLog:

2019-02-19  Johannes Pfau  

PR d/88127
* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_CLIB): Add new macro.
* configure.ac: Use DRUNTIME_LIBRARIES_CLIB.
* configure: Regenerate
* Makefile.in: Regenerate
* libdruntime/gcc/config.d.in: Add Have_Qsort_R.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/Makefile.in
trunk/libphobos/configure
trunk/libphobos/configure.ac
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/Makefile.in
trunk/libphobos/libdruntime/gcc/config.d.in
trunk/libphobos/libdruntime/rt/qsort.d
trunk/libphobos/m4/druntime/libraries.m4
trunk/libphobos/src/Makefile.in
trunk/libphobos/testsuite/Makefile.in

[Bug d/89041] ICE in get_frame_for_symbol, at d/d-codegen.cc:2175

2019-03-09 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89041

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Mar  9 19:29:29 2019
New Revision: 269533

URL: https://gcc.gnu.org/viewcvs?rev=269533&root=gcc&view=rev
Log:
d: Fix ICE in get_frame_for_symbol

When generating code for a non-nested delegate literal, there is no
context pointer required to pass to the function.

2019-03-09  Iain Buclaw  

gcc/d/
PR d/89041
* d-codegen.cc (get_frame_for_symbol): Delegate literals defined in
global scope don't have a frame pointer.

gcc/testsuite/
PR d/89041
* gdc.dg/pr89041.d: New test.

Added:
trunk/gcc/testsuite/gdc.dg/pr89041.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-codegen.cc
trunk/gcc/testsuite/ChangeLog

[Bug d/88958] ICE in walk_aliased_vdefs_1, at tree-ssa-alias.c:2887

2019-03-10 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88958

--- Comment #5 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Mar 10 16:29:48 2019
New Revision: 269557

URL: https://gcc.gnu.org/viewcvs?rev=269557&root=gcc&view=rev
Log:
PR d/88958
d/dmd: Merge upstream dmd 0fc786f49

Backport fix to disallow passing functions as parameters.

Fixes https://gcc.gnu.org/PR88958

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/test19608.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/expressionsem.c

[Bug d/89016] ICE in ArrayLiteralExp::toStringExp, at d/dmd/expression.c:3873

2019-03-10 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89016

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Mar 10 17:25:18 2019
New Revision: 269560

URL: https://gcc.gnu.org/viewcvs?rev=269560&root=gcc&view=rev
Log:
PR d/89016
d/dmd: Merge upstream dmd da26db819

Backports supplementary fix for ICE on importing deprecated modules.

Updates https://gcc.gnu.org/PR89016

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/imports/fail19609d.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/dimport.c
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19609.d

[Bug d/87824] x86_64-linux multilib issues

2019-03-10 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87824

--- Comment #24 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Mar 10 21:55:30 2019
New Revision: 269561

URL: https://gcc.gnu.org/viewcvs?rev=269561&root=gcc&view=rev
Log:
PR d/87824
d/dmd: Merge upstream dmd fcc235e8e

Associative arrays are value types, which are not covariant with the
pointer type typeof(null).

Updates https://gcc.gnu.org/PR87824

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

Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/mtype.c
trunk/gcc/testsuite/gdc.test/runnable/nulltype.d

[Bug d/87866] gdc fails to compile minimal test

2019-03-12 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87866

--- Comment #7 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Tue Mar 12 16:31:48 2019
New Revision: 269619

URL: https://gcc.gnu.org/viewcvs?rev=269619&root=gcc&view=rev
Log:
Use libiberty's lrealpath to avoid portability problems.

The dmd front-end function FileName::canonicalName could be called
during the semantic pass of import("file") expressions, so still
requires that realpath() be redefined.

Initial patch by Rainer Orth.

gcc/d/ChangeLog:

2019-03-12  Iain Buclaw  

PR d/87866
* d-system.h (realpath): Redefine as lrealpath.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-system.h

[Bug d/88957] ICE: Segmentation fault in tree_could_trap_p, at tree-eh.c:2672

2019-03-12 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88957

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Tue Mar 12 23:10:49 2019
New Revision: 269627

URL: https://gcc.gnu.org/viewcvs?rev=269627&root=gcc&view=rev
Log:
d/dmd: Merge upstream dmd 19b1454b5

Backports fixes for many ICEs that occurred when using the vector .array
property in both CTFE and code generation passes.

Fixes https://gcc.gnu.org/PR88957

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

gcc/d/ChangeLog:

2019-03-13  Iain Buclaw  

PR d/88957
* expr.cc (ExprVisitor::visit(VectorArrayExp)): New override.

gcc/testsuite/ChangeLog:

2019-03-13  Iain Buclaw  

PR d/88957
* gdc.dg/pr88957.d: New test.
* gdc.dg/simd.d: Add new vector tests.

Added:
trunk/gcc/testsuite/gdc.dg/pr88957.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/ctfeexpr.c
trunk/gcc/d/dmd/dinterpret.c
trunk/gcc/d/dmd/expression.c
trunk/gcc/d/dmd/expression.h
trunk/gcc/d/dmd/expressionsem.c
trunk/gcc/d/dmd/hdrgen.c
trunk/gcc/d/dmd/mtype.c
trunk/gcc/d/dmd/parse.c
trunk/gcc/d/dmd/tokens.c
trunk/gcc/d/dmd/tokens.h
trunk/gcc/d/dmd/visitor.h
trunk/gcc/d/expr.cc
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gdc.dg/simd.d

[Bug d/88990] ICE in get_symbol_decl, at d/decl.cc:1097

2019-03-15 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88990

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Fri Mar 15 13:37:07 2019
New Revision: 269708

URL: https://gcc.gnu.org/viewcvs?rev=269708&root=gcc&view=rev
Log:
PR d/88990
d/dmd: Merge upstream dmd 8d4c876c6

The extern storage class flag was wrongly propagated to function scope
when starting the semantic pass on the body.

Fixes https://gcc.gnu.org/PR88990

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

Added:
trunk/gcc/testsuite/gdc.test/runnable/test19734.d
trunk/gcc/testsuite/gdc.test/runnable/test19735.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/declaration.c
trunk/gcc/d/dmd/func.c

[Bug d/89017] ICE in force_type_die, at dwarf2out.c:26061

2019-03-20 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89017

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Mar 20 23:52:48 2019
New Revision: 269828

URL: https://gcc.gnu.org/viewcvs?rev=269828&root=gcc&view=rev
Log:
d: Fix ICE force_type_die, at dwarf2out.c using nested types

In functions whose return type is instantiated from a nested template,
make sure that all members of the instance are emitted before finishing
the outer function, otherwise they will be removed during the
prune_unused_types pass.

gcc/d/ChangeLog:

2019-03-21  Iain Buclaw  

PR d/89017
* d-codegen.cc (d_decl_context): Skip over template instances when
finding the context.
* decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override.
(build_type_decl): Include parameters in name of template types.

gcc/testsuite/ChangeLog:

2019-03-21  Iain Buclaw  

PR d/89017
* gdc.dg/pr89017.d: New test.

Added:
trunk/gcc/testsuite/gdc.dg/pr89017.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-codegen.cc
trunk/gcc/d/decl.cc
trunk/gcc/testsuite/ChangeLog

[Bug d/88462] All D execution tests FAIL on Solaris/SPARC

2019-03-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88462

--- Comment #13 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Mar 31 14:34:41 2019
New Revision: 270043

URL: https://gcc.gnu.org/viewcvs?rev=270043&root=gcc&view=rev
Log:
d: Fix run-time SIGSEGV reading ModuleInfo.flags()

The current forced alignment is not necessary, and is problematic on
targets that have strict alignment rules.

gcc/d/ChangeLog:

2019-03-31  Iain Buclaw  

PR d/88462
* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
instead of forcing alignment to be 1.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/modules.cc

[Bug d/88462] All D execution tests FAIL on Solaris/SPARC

2019-04-01 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88462

--- Comment #14 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Mon Apr  1 14:44:04 2019
New Revision: 270057

URL: https://gcc.gnu.org/viewcvs?rev=270057&root=gcc&view=rev
Log:
PR d/88462
libphobos: Fix abort in pthread_mutex_init on Solaris.

Merges upstream druntime d57fa1ff.

Reviewed-on: https://github.com/dlang/druntime/pull/2534

Modified:
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/core/internal/traits.d
trunk/libphobos/libdruntime/core/thread.d

[Bug d/89823] Composed message only partially translatable

2019-04-01 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89823

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Tue Apr  2 05:23:20 2019
New Revision: 270074

URL: https://gcc.gnu.org/viewcvs?rev=270074&root=gcc&view=rev
Log:
gcc/po/ChangeLog:

2019-04-02  Iain Buclaw  

PR d/89823
* EXCLUDES: Update list of d/dmd sources.
* gcc.pot: Regenerated.

Modified:
trunk/gcc/po/ChangeLog
trunk/gcc/po/EXCLUDES
trunk/gcc/po/gcc.pot

[Bug d/89255] libphobos.unittests multilib handling broken

2019-04-11 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89255

--- Comment #16 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Fri Apr 12 06:25:04 2019
New Revision: 270301

URL: https://gcc.gnu.org/viewcvs?rev=270301&root=gcc&view=rev
Log:
d: Add -fbuilding-libphobos-tests option

Currently, the druntime and phobos unittests are compiled as a separate
check program, then ran by the libphobos.unittest/unittest.exp script.
As PR d/89255 notes, this process lacks proper multilib handling.

As a first step, a new internal option that instructs the compiler to
put the reference to all unittest functions in another symbol has been
added.  This will allow each module to be compiled separately as a
standalone program using dg-runtest without running into collisions in
the D runtime module registry.

gcc/d/ChangeLog:

2019-04-12  Iain Buclaw  

* d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
* decl.cc (DeclVisitor): Add in_version_unittest_ field.
(DeclVisitor::visit(ConditionalDeclaration)): New override.
(DeclVisitor::visit(FuncDeclaration)): Set
DECL_IN_UNITTEST_CONDITION_P.
* lang.opt (-fbuilding-libphobos-tests): Add option.
* modules.cc (current_testing_module): New static variable.
(build_module_tree): Generate second moduleinfo symbol to hold
reference to unittests if flag_building_libphobos_tests.
(register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
which moduleinfo the decl should be registered against.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-tree.h
trunk/gcc/d/decl.cc
trunk/gcc/d/lang.opt
trunk/gcc/d/modules.cc

[Bug d/89255] libphobos.unittests multilib handling broken

2019-04-11 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89255

--- Comment #17 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Fri Apr 12 06:25:17 2019
New Revision: 270302

URL: https://gcc.gnu.org/viewcvs?rev=270302&root=gcc&view=rev
Log:
libphobos: Replace library check programs with dg-runtest

Fixes multilib handling when running the libphobos testsuite.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  

PR d/89255
* configure.ac (ENABLE_SHARED, ENABLE_STATIC): Remove conditionals.
* configure: Regenerate.
* d_rules.am (%.t.lo, %.t.o): Remove rules.
(unittest_static_LINK, unittest_LINK, libgdruntime_t_la_LINK,
libgphobos_t_la_LINK): Remove variables.
* libdruntime/Makefile.am (DRUNTIME_TEST_LOBJECTS,
DRUNTIME_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
unittest_static_LDFLAGS, unittest_static_LDADD,
EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
unittest_LDADD): Remove variables.
(clean-local): Remove rule.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.am (PHOBOS_TEST_LOBJECTS,
PHOBOS_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
unittest_static_LDFLAGS, unittest_static_LDADD,
EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
unittest_LDADD): Remove variables.
(clean-local): Remove rule.
* src/Makefile.in: Regenerate.
* testsuite/lib/libphobos.exp (libphobos_test_name): New global.
(libphobos_init): Set libphobos_test_name.
(libphobos-dg-test): Override name if libphobos_test_name is set.
(filter_libphobos_unittests): New proc.
* testsuite/libphobos.aa/aa.exp: Don't load libphobos-dg.exp.
* testsuite/libphobos.cycles/cycles.exp: Set libphobos_test_name.
* testsuite/libphobos.druntime/druntime.exp: New file.
* testsuite/libphobos.druntime_shared/druntime_shared.exp: New file.
* testsuite/libphobos.phobos/phobos.exp: New file.
* testsuite/libphobos.phobos_shared/phobos_shared.exp: New file.
* testsuite/libphobos.shared/shared.exp: Use dg-runtest to run tests.
* testsuite/libphobos.hash/hash.exp: Don't load libphobos-dg.exp
* testsuite/libphobos.init_fini/init_fini.exp: Likewise.
* testsuite/libphobos.thread/thread.exp: Likewise.
* testsuite/libphobos.typeinfo/typeinfo.exp: Likewise.
* testsuite/libphobos.unittests/unittests.exp: Remove.
* testsuite/test_runner.d: Remove.
* testsuite/testsuite_flags.in: Add phobos to --gdcpaths.

Added:
trunk/libphobos/testsuite/libphobos.druntime/
trunk/libphobos/testsuite/libphobos.druntime/druntime.exp
  - copied, changed from r270301,
trunk/libphobos/testsuite/libphobos.aa/aa.exp
trunk/libphobos/testsuite/libphobos.druntime_shared/
trunk/libphobos/testsuite/libphobos.druntime_shared/druntime_shared.exp
  - copied, changed from r270301,
trunk/libphobos/testsuite/libphobos.aa/aa.exp
trunk/libphobos/testsuite/libphobos.phobos/
trunk/libphobos/testsuite/libphobos.phobos/phobos.exp
  - copied, changed from r270301,
trunk/libphobos/testsuite/libphobos.aa/aa.exp
trunk/libphobos/testsuite/libphobos.phobos_shared/
trunk/libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
  - copied, changed from r270301,
trunk/libphobos/testsuite/libphobos.aa/aa.exp
Removed:
trunk/libphobos/testsuite/libphobos.unittests/
trunk/libphobos/testsuite/test_runner.d
Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/configure
trunk/libphobos/configure.ac
trunk/libphobos/d_rules.am
trunk/libphobos/libdruntime/Makefile.am
trunk/libphobos/libdruntime/Makefile.in
trunk/libphobos/src/Makefile.am
trunk/libphobos/src/Makefile.in
trunk/libphobos/testsuite/lib/libphobos.exp
trunk/libphobos/testsuite/libphobos.aa/aa.exp
trunk/libphobos/testsuite/libphobos.cycles/cycles.exp
trunk/libphobos/testsuite/libphobos.hash/hash.exp
trunk/libphobos/testsuite/libphobos.init_fini/init_fini.exp
trunk/libphobos/testsuite/libphobos.shared/shared.exp
trunk/libphobos/testsuite/libphobos.thread/thread.exp
trunk/libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
trunk/libphobos/testsuite/testsuite_flags.in

[Bug d/88039] gdc.test/compilable/ddoc12.d FAILs

2019-04-13 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88039

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 CC||ibuclaw at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #10 from ibuclaw at gcc dot gnu.org ---
Fixed in r266933.

[Bug d/90060] libphobos.druntime_shared/core/thread.d FAILs on Solaris/SPARC

2019-04-13 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90060

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Comment on attachment 46150
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46150
Use __makecontext_v2 on Solaris/SPARC

>+version (makecontextv2)
>+pragma(mangle, "__makecontext_v2") void makecontext(ucontext_t*, void 
>function(), int, ...);
>+else
>+void makecontext(ucontext_t*, void function(), int, ...);


I would use alias here instead of pragma(mangle).

void __makecontext_v2(ucontext_t*, void function(), int, ...);
alias makecontext = __makecontext_v2;

Both do the same thing however...

[Bug d/90063] druntime DSO first assertion fails on Solaris/SPARC

2019-04-13 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90063

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
After others have been committed, can you post a new stacktrace for this?

[Bug d/90065] Unaligned accesses on strict-alignment targets

2019-04-13 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90065

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
What about using a union instead of type-punning here?

[Bug d/87799] failure during bootstrap, fails to build d/filename.o

2019-04-14 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87799

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ibuclaw at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Fixed in r270349.

[Bug d/88150] Use sections_elf_shared.d on Solaris

2019-04-14 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88150

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ibuclaw at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #15 from ibuclaw at gcc dot gnu.org ---
See r270345 and r270347.

[Bug d/90062] SPARC stack alignment is wrong

2019-04-15 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90062

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Mon Apr 15 20:32:50 2019
New Revision: 270372

URL: https://gcc.gnu.org/viewcvs?rev=270372&root=gcc&view=rev
Log:
PR d/90059
PR d/90060
PR d/90062
libphobos: Merge upstream druntime 70b9fea6

Backports fixes in the extern(C) bindings for the Solaris/SPARC port.

Initial patch by Rainer Orth.

Reviewed-on: https://github.com/dlang/druntime/pull/2555

Modified:
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/core/sys/posix/ucontext.d
trunk/libphobos/libdruntime/core/sys/solaris/link.d
trunk/libphobos/libdruntime/core/thread.d

[Bug d/90059] Solaris mcontext_t, ucontext_t declarations are wrong

2019-04-15 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90059

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Mon Apr 15 20:32:50 2019
New Revision: 270372

URL: https://gcc.gnu.org/viewcvs?rev=270372&root=gcc&view=rev
Log:
PR d/90059
PR d/90060
PR d/90062
libphobos: Merge upstream druntime 70b9fea6

Backports fixes in the extern(C) bindings for the Solaris/SPARC port.

Initial patch by Rainer Orth.

Reviewed-on: https://github.com/dlang/druntime/pull/2555

Modified:
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/core/sys/posix/ucontext.d
trunk/libphobos/libdruntime/core/sys/solaris/link.d
trunk/libphobos/libdruntime/core/thread.d

[Bug d/90060] libphobos.druntime_shared/core/thread.d FAILs on Solaris/SPARC

2019-04-15 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90060

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Mon Apr 15 20:32:50 2019
New Revision: 270372

URL: https://gcc.gnu.org/viewcvs?rev=270372&root=gcc&view=rev
Log:
PR d/90059
PR d/90060
PR d/90062
libphobos: Merge upstream druntime 70b9fea6

Backports fixes in the extern(C) bindings for the Solaris/SPARC port.

Initial patch by Rainer Orth.

Reviewed-on: https://github.com/dlang/druntime/pull/2555

Modified:
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/core/sys/posix/ucontext.d
trunk/libphobos/libdruntime/core/sys/solaris/link.d
trunk/libphobos/libdruntime/core/thread.d

[Bug d/89293] libphobos: core.atomic should have fallback for no atomic library

2019-04-20 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89293

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Apr 20 17:14:50 2019
New Revision: 270470

URL: https://gcc.gnu.org/viewcvs?rev=270470&root=gcc&view=rev
Log:
libphobos: core.atomic should have fallback when there's no libatomic.

libphobos/ChangeLog:

2019-04-20  Iain Buclaw  

PR d/89293
* libdruntime/core/atomic.d (casImpl): Remove static assert for
GNU_Have_Atomics, add static path to handle missing atomic support.
(atomicLoad): Likewise.
(atomicStore): Likewise.
(atomicFence):  Likewise.
(atomicMutexHandle, AtomicMutex): Declare types.
(_getAtomicMutex): New function.
(getAtomicMutex): Declare.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/libdruntime/core/atomic.d

[Bug d/89017] ICE in force_type_die, at dwarf2out.c:26061

2019-04-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89017

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Apr 21 07:03:32 2019
New Revision: 270478

URL: https://gcc.gnu.org/viewcvs?rev=270478&root=gcc&view=rev
Log:
d: Use semanticRun to prevent declaration pass from running multiple times.

This shouldn't happen during normal traversal of the AST provided from
the front-end, however as there are some cases where declarations need
to be visited out of order, such as what is being done in PR d/89017, it
then becomes necessary to guard against this.

gcc/d/ChangeLog:

2019-04-21  Iain Buclaw  

* decl.cc (DeclVisitor::visit(Import)): Set semanticRun after
completion, guard against being called more than once.
(DeclVisitor::visit(StructDeclaration)): Likewise.
(DeclVisitor::visit(ClassDeclaration)): Likewise.
(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
(DeclVisitor::visit(VarDeclaration)): Likewise.
(DeclVisitor::visit(TypeInfoDeclaration)): Likewise.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/decl.cc

[Bug d/90064] InSituRegion lacks SPARC64 support

2019-04-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90064

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Apr 21 10:21:07 2019
New Revision: 270483

URL: https://gcc.gnu.org/viewcvs?rev=270483&root=gcc&view=rev
Log:
PR d/90064
libphobos: Merge upstream phobos 428460ddd

Defines growDownwards on SPARC64, initial patch by Rainer Orth.

Backports another fix to std.process, allowing permissions tests to be
skipped when running as root.

Reviewed-on: https://github.com/dlang/phobos/pull/6962

Modified:
trunk/libphobos/src/MERGE
trunk/libphobos/src/std/experimental/allocator/building_blocks/region.d
trunk/libphobos/src/std/process.d

[Bug d/90130] gdc.test/runnable/test12.d FAILs

2019-04-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90130

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Apr 21 20:26:12 2019
New Revision: 270485

URL: https://gcc.gnu.org/viewcvs?rev=270485&root=gcc&view=rev
Log:
PR d/90130
d/dmd: Merge upstream dmd 065fbd452

Fixes endian bug in CTFE, and corrects tests in the D2 testsuite that
failed on big endian targets.

Initial patch by Robin Dapp.

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

Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/constfold.c
trunk/gcc/testsuite/gdc.test/runnable/mars1.d
trunk/gcc/testsuite/gdc.test/runnable/test12.d
trunk/gcc/testsuite/gdc.test/runnable/test23.d

[Bug d/90079] SEGV in _aaKeys, _aaValues on 32-bit SPARC

2019-04-23 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90079

--- Comment #5 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Tue Apr 23 15:19:55 2019
New Revision: 270514

URL: https://gcc.gnu.org/viewcvs?rev=270514&root=gcc&view=rev
Log:
PR d/90079
libphobos: Fix SEGV in _aaKeys, _aaValues on 32-bit SPARC

Merges upstream druntime b43203a1

Reviewed-on: https://github.com/dlang/druntime/pull/2572

Modified:
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/object.d

[Bug d/88431] link errors on build

2019-04-23 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88431

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Apr 24 02:04:04 2019
New Revision: 270531

URL: https://gcc.gnu.org/viewcvs?rev=270531&root=gcc&view=rev
Log:
libphobos: Fix link build errors when compiling with unsupported options

The first compilation test to get baseline warnings was getting more
messages due to a missing object.d file, compared to later configure
tests where libphobos is in the include paths.

Because there must always be an object module during compilation, let
the tests themselves be an empty object module instead.

libphobos/ChangeLog:

2019-04-24  Iain Buclaw  

PR d/88431
* configure: Regenerate.
* m4/libtool.m4 (lt_simple_compile_test_code): Update to not have
dependencies on libphobos.
(lt_simple_link_test_code): Likewise.
(GDCFLAGS): Don't override for D compiler tests.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/configure
trunk/libphobos/m4/libtool.m4

[Bug d/88654] Hangs in libphobos testsuite

2019-04-24 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88654

--- Comment #8 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Apr 24 14:17:34 2019
New Revision: 270545

URL: https://gcc.gnu.org/viewcvs?rev=270545&root=gcc&view=rev
Log:
libphobos: Skip curl tests if libcurl is not installed on the target.

libphobos/ChangeLog:

2019-04-24  Iain Buclaw  

PR d/88654
* testsuite/lib/libphobos.exp (libphobos-dg-test): Check
libphobos_skipped_test_p before running test.
(libphobos-dg-prune): New proc.
(libphobos_init): Set libphobos_skip_tests.
(libphobos_skipped_test_p): New proc.
(check_effective_target_libcurl_available): New proc.
* testsuite/libphobos.phobos/phobos.exp: Skip curl tests if library
not found.
* testsuite/libphobos.phobos_shared/phobos_shared.exp: Likewise.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/testsuite/lib/libphobos.exp
trunk/libphobos/testsuite/libphobos.phobos/phobos.exp
trunk/libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp

[Bug d/89432] FAIL: libphobos.unittests/druntime/{static,shared}/core.time on CentOS 5.11, Linux 2.6.18

2019-04-24 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89432

--- Comment #6 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Apr 24 18:57:36 2019
New Revision: 270554

URL: https://gcc.gnu.org/viewcvs?rev=270554&root=gcc&view=rev
Log:
libphobos: Fix FAIL phobos.exp/core.time on CentOS 5.11, Linux 2.6.18

Merges upstream druntime e03164b5.

Reviewed-on: https://github.com/dlang/druntime/pull/2581

libphobos/ChangeLog:

2019-04-24  Iain Buclaw  

PR d/89432
* testsuite/lib/libphobos.exp (check_effective_target_linux_pre_2639):
New proc.
* testsuite/libphobos.druntime/druntime.exp: Add compiler flag
-fversion=Linux_Pre_2639 if target is linux_pre_2639.
* testsuite/libphobos.druntime_shared/druntime_shared.exp: Likewise.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/libdruntime/MERGE
trunk/libphobos/libdruntime/core/time.d
trunk/libphobos/testsuite/lib/libphobos.exp
trunk/libphobos/testsuite/libphobos.druntime/druntime.exp
trunk/libphobos/testsuite/libphobos.druntime_shared/druntime_shared.exp

[Bug d/90086] libphobos: warning: type and size of dynamic symbol `fiber_switchContext' are not defined

2019-04-24 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90086

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Apr 24 22:46:59 2019
New Revision: 270560

URL: https://gcc.gnu.org/viewcvs?rev=270560&root=gcc&view=rev
Log:
libphobos: Fix linker warning and SEGV in core.thread tests.

The monolithic core/threadasm.S source has been removed, and split into
multiple parts, one for each intended target CPU/OS.

Added .type and .size directives for all asm implementations of
fiber_switchContent and callWithStackShell where they were missing.

libphobos/ChangeLog:

2019-04-25  Iain Buclaw  

PR d/90086
* m4/druntime/cpu.m4 (DRUNTIME_CPU_SOURCES): New macro.
* configure.ac: Use it.
* configure: Regenerate.
* libdruntime/Makefile.am: Add new config sources to
DRUNTIME_SOURCES_CONFIGURED.
* libdruntime/Makefile.in: Regenerate.
* libdruntime/config/aarch64/switchcontext.S: New file.
* libdruntime/config/arm/switchcontext.S: New file.
* libdruntime/config/common/threadasm.S: New file.
* libdruntime/config/mingw/switchcontext.S: New file.
* libdruntime/config/mips/switchcontext.S: New file.
* libdruntime/config/powerpc/switchcontext.S: New file.
* libdruntime/config/powerpc64/callwithstack.S: New file.
* libdruntime/config/x86/switchcontext.S: New file.
* libdruntime/core/threadasm.S: Remove.

Added:
trunk/libphobos/libdruntime/config/
trunk/libphobos/libdruntime/config/aarch64/
trunk/libphobos/libdruntime/config/aarch64/switchcontext.S
trunk/libphobos/libdruntime/config/arm/
trunk/libphobos/libdruntime/config/arm/switchcontext.S
trunk/libphobos/libdruntime/config/common/
trunk/libphobos/libdruntime/config/common/threadasm.S
trunk/libphobos/libdruntime/config/mingw/
trunk/libphobos/libdruntime/config/mingw/switchcontext.S
trunk/libphobos/libdruntime/config/mips/
trunk/libphobos/libdruntime/config/mips/switchcontext.S
trunk/libphobos/libdruntime/config/powerpc/
trunk/libphobos/libdruntime/config/powerpc/switchcontext.S
trunk/libphobos/libdruntime/config/powerpc64/
trunk/libphobos/libdruntime/config/powerpc64/callwithstack.S
trunk/libphobos/libdruntime/config/x86/
trunk/libphobos/libdruntime/config/x86/switchcontext.S
Removed:
trunk/libphobos/libdruntime/core/threadasm.S
Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/configure
trunk/libphobos/configure.ac
trunk/libphobos/libdruntime/Makefile.am
trunk/libphobos/libdruntime/Makefile.in
trunk/libphobos/m4/druntime/cpu.m4

[Bug d/90250] libphobos: segfault in runtime caused by unexpected GC of TLS data.

2019-04-25 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90250

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Thu Apr 25 15:31:35 2019
New Revision: 270576

URL: https://gcc.gnu.org/viewcvs?rev=270576&root=gcc&view=rev
Log:
libphobos: Fix segfault in runtime caused by unexpected GC of TLS data.

libphobos/ChangeLog:

2019-04-25  Iain Buclaw  

PR d/90250
* libdruntime/gcc/sections/elf_shared.d (initTLSRanges): Populate
_tlsRanges in every startup thread.
* testsuite/libphobos.thread/thread.exp: Load libphobos-dg.exp.
* testsuite/libphobos.thread/tlsgc_sections.d: New test.

Added:
trunk/libphobos/testsuite/libphobos.thread/tlsgc_sections.d
Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/libdruntime/gcc/sections/elf_shared.d
trunk/libphobos/testsuite/libphobos.thread/thread.exp

[Bug d/90651] ICE in FuncDeclaration::semantic3, at d/dmd/func.c:1524

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90651

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:47:46 2019
New Revision: 272340

URL: https://gcc.gnu.org/viewcvs?rev=272340&root=gcc&view=rev
Log:
PR d/90651
d/dmd: Merge upstream dmd 78dc31152

Fixes bug where the object module was not always implicitly imported.

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

Added:
trunk/gcc/testsuite/gdc.test/compilable/test19912.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19912a.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19912b.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19912c.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19912d.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19912e.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/dmodule.c

[Bug d/90660] ICE in TypeQualified::resolveHelper, at d/dmd/mtype.c:6738

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90660

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:47:34 2019
New Revision: 272339

URL: https://gcc.gnu.org/viewcvs?rev=272339&root=gcc&view=rev
Log:
PR d/90660
d/dmd: Merge upstream dmd bbc5ea66a

Fixes segmentation fault in TypeQualified::resolveHelper.

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19913.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/mtype.c

[Bug d/90661] ICE in AlignDeclaration::syntaxCopy, at d/dmd/attrib.c:670

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90661

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:47:57 2019
New Revision: 272341

URL: https://gcc.gnu.org/viewcvs?rev=272341&root=gcc&view=rev
Log:
PR d/90661
d/dmd: Merge upstream dmd c74e624c9

Fixes segmentation fault in AlignDeclaration::syntaxCopy.

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19914.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19915.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/attrib.c
trunk/gcc/testsuite/gdc.test/compilable/aggr_alignment.d

[Bug d/90602] ICE: null field

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90602

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:48:23 2019
New Revision: 272342

URL: https://gcc.gnu.org/viewcvs?rev=272342&root=gcc&view=rev
Log:
PR d/90602
d/dmd: Merge upstream dmd 420cce2a6

Fixes internal compiler error during CTFE.

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19897.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/dinterpret.c

[Bug d/90651] ICE in FuncDeclaration::semantic3, at d/dmd/func.c:1524

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90651

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:49:06 2019
New Revision: 272345

URL: https://gcc.gnu.org/viewcvs?rev=272345&root=gcc&view=rev
Log:
PR d/90651
d/dmd: Merge upstream dmd 0f6cbbcad

Fixes segmentation fault in FuncDeclaration::semantic3.

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

gcc/d/ChangeLog:

2019-06-16  Iain Buclaw  

* typeinfo.cc (object_module): New variable.
(make_frontend_typeinfo): Update signature.  Set temporary on
generated TypeInfo classes.
(create_tinfo_types): Set object_module.  Move generation of front-end
typeinfo into ...
(create_frontend_tinfo_types): ... New function.
(layout_typeinfo): Call create_frontend_tinfo_types.
(layout_classinfo): Likewise.
(layout_cpp_typeinfo): Likewise.
(create_typeinfo): Likewise.

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/
trunk/gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19911a.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19911b.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19911c.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19922.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19923.d
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/expressionsem.c
trunk/gcc/d/dmd/func.c
trunk/gcc/d/dmd/mtype.c
trunk/gcc/d/typeinfo.cc

[Bug d/90604] ICE in sizemask, at d/dmd/mtype.c:2542

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90604

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:48:42 2019
New Revision: 272343

URL: https://gcc.gnu.org/viewcvs?rev=272343&root=gcc&view=rev
Log:
PR d/90604
d/dmd: Merge upstream dmd f30c5dc79

Fixes internal compiler error in Type::sizemask.

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19898a.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19898b.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/intrange.c

[Bug d/90650] ICE in fold_convert_loc, at fold-const.c:2552

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90650

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:48:53 2019
New Revision: 272344

URL: https://gcc.gnu.org/viewcvs?rev=272344&root=gcc&view=rev
Log:
PR d/90650
d/dmd: Merge upstream dmd ab03e2918

Fixes internal compiler error in fold_convert_loc.

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

gcc/testsuite/ChangeLog:

2019-06-16  Iain Buclaw  

PR d/90650
* gdc.dg/pr90650a.d: New test.
* gdc.dg/pr90650b.d: New test.

Added:
trunk/gcc/testsuite/gdc.dg/pr90650a.d
trunk/gcc/testsuite/gdc.dg/pr90650b.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/expressionsem.c
trunk/gcc/d/dmd/mtype.c
trunk/gcc/d/dmd/statementsem.c
trunk/gcc/testsuite/ChangeLog

[Bug d/90761] ICE in visit, at d/dmd/dcast.c:883

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90761

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:49:18 2019
New Revision: 272346

URL: https://gcc.gnu.org/viewcvs?rev=272346&root=gcc&view=rev
Log:
PR d/90761
d/dmd: Merge upstream dmd d912f4e49

Fixes segmentation fault in implicitConvTo::ImplicitConvTo::visit.

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

Added:
trunk/gcc/testsuite/gdc.test/compilable/test19941.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19941.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/expressionsem.c

[Bug d/90762] ICE in resolvePropertiesX, at d/dmd/expression.c:251

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90762

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:49:30 2019
New Revision: 272347

URL: https://gcc.gnu.org/viewcvs?rev=272347&root=gcc&view=rev
Log:
PR d/90762
d/dmd: Merge upstream dmd b0cd59177

Fixes segmentation fault in resolvePropertiesX.

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

Added:
trunk/gcc/testsuite/gdc.test/compilable/traits.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/statementsem.c

[Bug d/90560] ICE in visit, at d/dmd/dcast.c:1872

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90560

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:49:43 2019
New Revision: 272348

URL: https://gcc.gnu.org/viewcvs?rev=272348&root=gcc&view=rev
Log:
PR d/90560
d/dmd: Merge upstream dmd c6887d9bb

Fixes segmentation fault in castTo::CastTo::visit.

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19890a.d
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19890b.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/mtype.c

[Bug d/90559] Out of memory because of negative length

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90559

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:50:20 2019
New Revision: 272351

URL: https://gcc.gnu.org/viewcvs?rev=272351&root=gcc&view=rev
Log:
PR d/90559
d/dmd: Merge upstream dmd 7afcc60c3

Partially fixes out of memory because of negative length.

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

gcc/d/ChangeLog:

2019-06-16  Iain Buclaw  

PR d/90559
* d-target.cc (Target::_init): Reduce max static data size to INT_MAX.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-target.cc
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/clone.c
trunk/gcc/d/dmd/expressionsem.c
trunk/gcc/d/dmd/mtype.c
trunk/gcc/d/dmd/mtype.h
trunk/gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d

[Bug d/90863] ICE in StatementSemanticVisitor::visit, at d/dmd/statementsem.c:1992

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90863

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 07:50:31 2019
New Revision: 272352

URL: https://gcc.gnu.org/viewcvs?rev=272352&root=gcc&view=rev
Log:
PR d/90863
d/dmd: Merge upstream dmd 6e44734cc

Fixes segmentation fault in StatementSemanticVisitor::visit.

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

Added:
trunk/gcc/testsuite/gdc.test/fail_compilation/fail19955.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/blockexit.c
trunk/gcc/d/dmd/statementsem.c

[Bug d/90559] Out of memory because of negative length

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90559

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|ASSIGNED
   Last reconfirmed||2019-06-16
 CC||ibuclaw at gcc dot gnu.org
 Resolution|FIXED   |---
 Ever confirmed|0   |1

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
Well, actually, partially fixed.  There's still some pretty bad handling of
very large arrays within the dmd frontend itself.

One of the problems being that it represents the initializer as one big
contiguous array in memory in the frontend AST, and this initializer could be
copied multiple times if used during CTFE.

I think ultimately to cloes this, array initializers should be represented
sparsely, but that would be a bigger internal change to dmd itself.

[Bug d/90603] ICE in functionParameters, at d/dmd/expression.c:1553

2019-06-16 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90603

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Jun 16 22:50:16 2019
New Revision: 272366

URL: https://gcc.gnu.org/viewcvs?rev=272366&root=gcc&view=rev
Log:
PR d/90603
d/dmd: Merge upstream dmd 792f0fdf2

Fixes segmentation fault in functionParameters, and other related
semantic bugs in forward or recursively referenced declarations.

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

Added:
trunk/gcc/testsuite/gdc.test/compilable/imports/test16214b.d
trunk/gcc/testsuite/gdc.test/compilable/test16214a.d
trunk/gcc/testsuite/gdc.test/fail_compilation/b15875.d
trunk/gcc/testsuite/gdc.test/fail_compilation/b17285.d
trunk/gcc/testsuite/gdc.test/fail_compilation/b19691.d
trunk/gcc/testsuite/gdc.test/fail_compilation/b19691e.d
trunk/gcc/testsuite/gdc.test/fail_compilation/b19717.d
trunk/gcc/testsuite/gdc.test/fail_compilation/b19717a.d
Modified:
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/dclass.c
trunk/gcc/d/dmd/declaration.c
trunk/gcc/d/dmd/denum.c
trunk/gcc/d/dmd/dimport.c
trunk/gcc/d/dmd/dinterpret.c
trunk/gcc/d/dmd/dstruct.c
trunk/gcc/d/dmd/dtemplate.c
trunk/gcc/d/dmd/expression.c
trunk/gcc/d/dmd/expressionsem.c
trunk/gcc/d/dmd/func.c
trunk/gcc/d/dmd/mtype.c
trunk/gcc/d/dmd/optimize.c
trunk/gcc/d/dmd/statement.c
trunk/gcc/d/dmd/statementsem.c
trunk/gcc/d/dmd/traits.c

[Bug d/87799] failure during bootstrap, fails to build d/filename.o

2018-10-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87799

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Oct 31 09:44:31 2018
New Revision: 265658

URL: https://gcc.gnu.org/viewcvs?rev=265658&root=gcc&view=rev
Log:
ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87788
PR d/87799
* configure: Rebuild.
* configure.ac: Disable D on systems where it is known not to work.

libphobos/ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87789
PR d/87818
PR d/87819
* configure.tgt: New file.

Added:
trunk/libphobos/configure.tgt
Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac
trunk/libphobos/ChangeLog

[Bug bootstrap/87788] [9 Regression] Bootstrap fails for x86_64-apple-darwin* with default languages selection after D addition.

2018-10-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87788

--- Comment #12 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Oct 31 09:44:31 2018
New Revision: 265658

URL: https://gcc.gnu.org/viewcvs?rev=265658&root=gcc&view=rev
Log:
ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87788
PR d/87799
* configure: Rebuild.
* configure.ac: Disable D on systems where it is known not to work.

libphobos/ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87789
PR d/87818
PR d/87819
* configure.tgt: New file.

Added:
trunk/libphobos/configure.tgt
Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac
trunk/libphobos/ChangeLog

[Bug d/87789] D does not build on powerpc64-linux

2018-10-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87789

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Oct 31 09:44:31 2018
New Revision: 265658

URL: https://gcc.gnu.org/viewcvs?rev=265658&root=gcc&view=rev
Log:
ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87788
PR d/87799
* configure: Rebuild.
* configure.ac: Disable D on systems where it is known not to work.

libphobos/ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87789
PR d/87818
PR d/87819
* configure.tgt: New file.

Added:
trunk/libphobos/configure.tgt
Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac
trunk/libphobos/ChangeLog

[Bug d/87819] failure during bootstrap, fails to build libdruntime

2018-10-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87819

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Oct 31 09:44:31 2018
New Revision: 265658

URL: https://gcc.gnu.org/viewcvs?rev=265658&root=gcc&view=rev
Log:
ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87788
PR d/87799
* configure: Rebuild.
* configure.ac: Disable D on systems where it is known not to work.

libphobos/ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87789
PR d/87818
PR d/87819
* configure.tgt: New file.

Added:
trunk/libphobos/configure.tgt
Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac
trunk/libphobos/ChangeLog

[Bug d/87818] D runtime does not build on FreeBSD.

2018-10-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87818

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Oct 31 09:44:31 2018
New Revision: 265658

URL: https://gcc.gnu.org/viewcvs?rev=265658&root=gcc&view=rev
Log:
ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87788
PR d/87799
* configure: Rebuild.
* configure.ac: Disable D on systems where it is known not to work.

libphobos/ChangeLog:

2018-10-31  Iain Buclaw  

PR bootstrap/87789
PR d/87818
PR d/87819
* configure.tgt: New file.

Added:
trunk/libphobos/configure.tgt
Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac
trunk/libphobos/ChangeLog

[Bug d/87825] profiledbootstrap is broken when D is enabled

2018-10-31 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87825

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Wed Oct 31 21:48:52 2018
New Revision: 265702

URL: https://gcc.gnu.org/viewcvs?rev=265702&root=gcc&view=rev
Log:
Fix profiledbootstrap when D is enabled

gcc/d/ChangeLog:

2018-10-31  Iain Buclaw  

PR d/87825
* Make-lang.in (d/idgen) Link with BUILD_LINKERFLAGS.
(d/impcvgen): Likewise.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/Make-lang.in

[Bug d/87827] libgphobos.spec in the wrong place with --enable-version-specific-runtime-libs

2018-11-02 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87827

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Fri Nov  2 08:29:50 2018
New Revision: 265742

URL: https://gcc.gnu.org/viewcvs?rev=265742&root=gcc&view=rev
Log:
Fix libgphobos.spec in the wrong place with
--enable-version-specific-runtime-libs

libphobos/ChangeLog:

2018-11-01  Iain Buclaw  

PR d/87827
* Makefile.in: Rebuild.
* configure: Rebuild.
* configure.ac: Properly set MULTISUBDIR.
* d_rules.am: Set toolexecdir and toolexeclibdir.
* libdruntime/Makefile.in: Rebuild.
* m4/druntime.m4 (DRUNTIME_INSTALL_DIRECTORIES): Add
--enable-version-specific-runtime-libs.
* src/Makefile.in: Rebuild.
* testsuite/Makefile.in: Rebuild.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/Makefile.in
trunk/libphobos/configure
trunk/libphobos/configure.ac
trunk/libphobos/d_rules.am
trunk/libphobos/libdruntime/Makefile.in
trunk/libphobos/m4/druntime.m4
trunk/libphobos/src/Makefile.in
trunk/libphobos/testsuite/Makefile.in

[Bug d/87865] gdc doesn't build unless assert is marked noreturn

2018-11-04 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87865

--- Comment #6 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sun Nov  4 23:34:44 2018
New Revision: 265780

URL: https://gcc.gnu.org/viewcvs?rev=265780&root=gcc&view=rev
Log:
Merge dmd upstream 6243fa6d2

This introduces a new header that pulls in system includes for use only
in the DMD front-end part of the compiler, fixing up uses of problematic
functions that are prevalent throughout the code.

Commits merged from dmd.

Fix build of the D frontend on the Hurd and KFreeBSD.
Initial patch from Matthias Klose.
https://github.com/dlang/dmd/pull/8893

Don't care about D/C++ compatibility in C++ port.
Fixes build error in https://gcc.gnu.org/PR87788
https://github.com/dlang/dmd/pull/8895

Allow compiling front-end headers with strict warnings.
https://github.com/dlang/dmd/pull/8909

Add root/system.h header for wrapping system includes.
Fixes https://gcc.gnu.org/PR87865
https://github.com/dlang/dmd/pull/8910

Move checkedint to dmd/root.
https://github.com/dlang/dmd/pull/8912

Use rmem instead of libc for malloc() and strdup().
https://github.com/dlang/dmd/pull/8913

Use align(8) for alignment of UnionExp, fixing several BUS errors
due to alignment issues on SPARC.
https://github.com/dlang/dmd/pull/8914

Don't pass NULL pointer as format parameter to errorSupplemental.
https://github.com/dlang/dmd/pull/8916

gcc/d/ChangeLog:

2018-11-05  Iain Buclaw  

PR d/87865
* d-system.h: New file.

Added:
trunk/gcc/d/d-system.h
trunk/gcc/d/dmd/MERGE
trunk/gcc/d/dmd/root/checkedint.c
  - copied, changed from r265778, trunk/gcc/d/dmd/checkedint.c
trunk/gcc/d/dmd/root/checkedint.h
  - copied, changed from r265778, trunk/gcc/d/dmd/checkedint.h
trunk/gcc/d/dmd/root/dsystem.h
Removed:
trunk/gcc/d/dmd/checkedint.c
trunk/gcc/d/dmd/checkedint.h
trunk/gcc/d/dmd/unittests.c
Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/dmd/access.c
trunk/gcc/d/dmd/aggregate.h
trunk/gcc/d/dmd/aliasthis.c
trunk/gcc/d/dmd/aliasthis.h
trunk/gcc/d/dmd/apply.c
trunk/gcc/d/dmd/argtypes.c
trunk/gcc/d/dmd/arrayop.c
trunk/gcc/d/dmd/attrib.c
trunk/gcc/d/dmd/attrib.h
trunk/gcc/d/dmd/canthrow.c
trunk/gcc/d/dmd/clone.c
trunk/gcc/d/dmd/compiler.h
trunk/gcc/d/dmd/cond.c
trunk/gcc/d/dmd/constfold.c
trunk/gcc/d/dmd/cppmangle.c
trunk/gcc/d/dmd/ctfeexpr.c
trunk/gcc/d/dmd/dcast.c
trunk/gcc/d/dmd/dclass.c
trunk/gcc/d/dmd/declaration.c
trunk/gcc/d/dmd/declaration.h
trunk/gcc/d/dmd/delegatize.c
trunk/gcc/d/dmd/denum.c
trunk/gcc/d/dmd/dimport.c
trunk/gcc/d/dmd/dinterpret.c
trunk/gcc/d/dmd/dmacro.c
trunk/gcc/d/dmd/dmangle.c
trunk/gcc/d/dmd/dmodule.c
trunk/gcc/d/dmd/doc.c
trunk/gcc/d/dmd/doc.h
trunk/gcc/d/dmd/dscope.c
trunk/gcc/d/dmd/dstruct.c
trunk/gcc/d/dmd/dsymbol.c
trunk/gcc/d/dmd/dsymbol.h
trunk/gcc/d/dmd/dtemplate.c
trunk/gcc/d/dmd/dversion.c
trunk/gcc/d/dmd/entity.c
trunk/gcc/d/dmd/enum.h
trunk/gcc/d/dmd/errors.h
trunk/gcc/d/dmd/expression.c
trunk/gcc/d/dmd/expression.h
trunk/gcc/d/dmd/expressionsem.c
trunk/gcc/d/dmd/func.c
trunk/gcc/d/dmd/globals.h
trunk/gcc/d/dmd/hdrgen.c
trunk/gcc/d/dmd/hdrgen.h
trunk/gcc/d/dmd/identifier.c
trunk/gcc/d/dmd/idgen.c
trunk/gcc/d/dmd/impcnvgen.c
trunk/gcc/d/dmd/imphint.c
trunk/gcc/d/dmd/import.h
trunk/gcc/d/dmd/init.c
trunk/gcc/d/dmd/initsem.c
trunk/gcc/d/dmd/intrange.c
trunk/gcc/d/dmd/json.c
trunk/gcc/d/dmd/lexer.c
trunk/gcc/d/dmd/macro.h
trunk/gcc/d/dmd/mars.h
trunk/gcc/d/dmd/module.h
trunk/gcc/d/dmd/mtype.c
trunk/gcc/d/dmd/nspace.c
trunk/gcc/d/dmd/nspace.h
trunk/gcc/d/dmd/opover.c
trunk/gcc/d/dmd/optimize.c
trunk/gcc/d/dmd/parse.c
trunk/gcc/d/dmd/parse.h
trunk/gcc/d/dmd/root/aav.c
trunk/gcc/d/dmd/root/aav.h
trunk/gcc/d/dmd/root/array.h
trunk/gcc/d/dmd/root/dcompat.h
trunk/gcc/d/dmd/root/file.c
trunk/gcc/d/dmd/root/file.h
trunk/gcc/d/dmd/root/filename.c
trunk/gcc/d/dmd/root/hash.h
trunk/gcc/d/dmd/root/object.h
trunk/gcc/d/dmd/root/outbuffer.c
trunk/gcc/d/dmd/root/outbuffer.h
trunk/gcc/d/dmd/root/port.h
trunk/gcc/d/dmd/root/rmem.c
trunk/gcc/d/dmd/root/rmem.h
trunk/gcc/d/dmd/root/rootobject.c
trunk/gcc/d/dmd/root/speller.c
trunk/gcc/d/dmd/root/stringtable.c
trunk/gcc/d/dmd/sapply.c
trunk/gcc/d/dmd/sideeffect.c
trunk/gcc/d/dmd/statement.c
trunk/gcc/d/dmd/statementsem.c
trunk/gcc/d/dmd/staticassert.c
trunk/gcc/d/dmd/staticassert.h
trunk/gcc/d/dmd/target.h
trunk/gcc/d/dmd/template.h
trunk/gcc/d/dmd/tokens.c
trunk/gcc/d/dmd/traits.c
trunk/gcc/d/dmd/utf.c
trunk/gcc/d/dmd/utf.h
trunk/gcc/d/dmd/utils.c
trunk/gcc/d/dmd/version.h
trunk/gcc/d/dmd/visitor.h

[Bug d/87824] x86_64-linux multilib issues

2018-11-17 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87824

--- Comment #11 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Nov 17 11:01:00 2018
New Revision: 266234

URL: https://gcc.gnu.org/viewcvs?rev=266234&root=gcc&view=rev
Log:
Fix wrong alignment returned by .alignof property.

The D language expects the value to be the minimum alignment required
for the type, not the preferred alignment.

gcc/d/ChangeLog:

2018-11-17  Iain Buclaw  

PR d/87824
* d-target.cc (Target::alignsize): Return min_align_of_type.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-target.cc

[Bug d/87824] x86_64-linux multilib issues

2018-11-21 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87824

--- Comment #14 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Thu Nov 22 06:14:47 2018
New Revision: 266366

URL: https://gcc.gnu.org/viewcvs?rev=266366&root=gcc&view=rev
Log:
libphobos/ChangeLog:

2018-11-22  Johannes Pfau  

PR d/87824
* testsuite/libphobos.shared/shared.exp: Set proper path to phobos
library for multilib builds.

Modified:
trunk/libphobos/ChangeLog
trunk/libphobos/testsuite/libphobos.shared/shared.exp

[Bug d/87866] gdc fails to compile minimal test

2018-11-24 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87866

--- Comment #4 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Sat Nov 24 09:51:03 2018
New Revision: 266429

URL: https://gcc.gnu.org/viewcvs?rev=266429&root=gcc&view=rev
Log:
gcc/d/ChangeLog:

2018-11-24  Iain Buclaw  

PR d/87866
* d-incpath.cc (add_globalpaths): Use lrealpath to get canonical name.
(add_filepaths): Likewise.

Modified:
trunk/gcc/d/ChangeLog
trunk/gcc/d/d-incpath.cc

[Bug rtl-optimization/69217] [6 Regression] ICE at var-tracking.c:5038 Segmentation fault

2016-01-26 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69217

--- Comment #6 from ibuclaw at gcc dot gnu.org ---
Author: ibuclaw
Date: Tue Jan 26 20:57:37 2016
New Revision: 232845

URL: https://gcc.gnu.org/viewcvs?rev=232845&root=gcc&view=rev
Log:
PR rtl-optimization/69217
* var-tracking.c (tracked_record_parameter_p): Don't segfault if there
are no TYPE_FIELDS set for the record type.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/var-tracking.c

[Bug d/108408] libphobos: Support building on *-*-cygwin

2023-01-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108408

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #2 from ibuclaw at gcc dot gnu.org ---
(In reply to nightstrike from comment #0)
> +struct _Bigint {
> +_Bigint* _next;
> +int _k;
> +int _maxwds;
> +int _sign;
> +int _wds;
> +ulong[1] _x;
> +}
--snip--
> +_Bigint* _p5s;
> +int _result_k;
> +_Bigint* _result;
> +_Bigint** _freelist;
If some of these definitions are just going to be pointer fields in other
structs, can definitely loose the definition, and just declare an opaque struct
instead (struct _Bigint;)

[Bug d/108408] libphobos: Support building on *-*-cygwin

2023-01-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108408

--- Comment #3 from ibuclaw at gcc dot gnu.org ---
So a big part of what's missing in druntime bindings is *any* declarations for
version(CRuntime_Newlib) targets.  Though as I understand it, Cygwin is a bit
of a hybrid in that matter.

[Bug d/108408] libphobos: Support building on *-*-cygwin

2023-01-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108408

--- Comment #5 from ibuclaw at gcc dot gnu.org ---
(In reply to Corinna from comment #4)
> I'm not sure what you mean with "hybrid".
Probably the wrong word to use, based on what I was told via gcc irc.
"""
the relationship of cygwin1.dll and newlib seems a lil strange
afaict cygwin1.dll is a superset of newlib functionality
"""

> Having said that, there's no "one size fits all" for all supported
> targets in newlib, so to support newlib targets in general, a preprocessor
> based solution would be extremly helpful.
In D, there's `static if` for that.  Features can either be hard tuned in a 
config.d module (core/sys/cygwin/config.d?) or detected at configure-time and
put into gcc/config.d.in.

[Bug d/108763] va_arg usage in D doesn't compile

2023-02-12 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108763

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #5 from ibuclaw at gcc dot gnu.org ---
I abandoned the idea of supporting RTTI-based variadics years ago. Even the
current reference implementation only supports a subset of the x86_64 ABI in
its current incarnation as far as I recall.

I had considered maybe libffi might allow us to do this, but I didn't see
anything that would allow me to say "retrieve the next variadic argument of
size SIZE and mode MODE". But I could not see anything that looked exactly as
that, even though as I understand there is limited support for constructing a
variadic call to a C function.

[Bug d/108763] va_arg usage in D doesn't compile

2023-02-12 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108763

--- Comment #6 from ibuclaw at gcc dot gnu.org ---
I'll add it as a note to the deviations page.

https://gcc.gnu.org/onlinedocs/gdc/Missing-Features.html#Missing-Features

I'd actually forgotten about this.

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-22 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ibuclaw at gcc dot gnu.org

--- Comment #6 from ibuclaw at gcc dot gnu.org ---
There's r13-1113 with introduced the use of visible().

Can't see anything odd about the virtual function declaration that would
suggest there's a mismatch between C++/D.

It does return a struct though.  Is there maybe something special done in the
way structs are returned on 32-bit OSX that doesn't occur on 32-bit Linux?

I could also just revert to accessing the underlying `->visibility` field
directly, if it really is just that function call that's problematic.

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #9 from ibuclaw at gcc dot gnu.org ---
(In reply to Iain Sandoe from comment #8)
> +
> +/* NODE is a FUNCTION_DECL, VAR_DECL or RECORD_TYPE for the declaration SYM.
> +   Set flags to reflect visibility that NODE will get in the object file. 
> */
> +
> +void
> +set_visibility_for_decl (tree node, Dsymbol *sym)
> 
> hmmm.. should the call be "set_visibility_for_decl (decl, decl->csym); ?
> 
> or should the signature of set_visibility_for_decl() be
> set_visibility_for_decl (Dsymbol *sym, tree node)?
> 
> or maybe I misread the comment
I might be unclear, first parameter (NODE) is a tree *_DECL representation for
the second parameters (SYM) that is the associated front-end symbol.

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #10 from ibuclaw at gcc dot gnu.org ---
Without using `->visible()` would be something like:

--- a/gcc/d/decl.cc
+++ b/gcc/d/decl.cc
@@ -2559,10 +2561,17 @@ set_linkage_for_decl (tree decl)
 void
 set_visibility_for_decl (tree node, Dsymbol *sym)
 {
-  Visibility visibility = sym->visible ();
-  if (visibility.kind == Visibility::private_)
+  Visibility::Kind kind;
+  if (AggregateDeclaration *ad = sym->isAggregateDeclaration ())
+kind = ad->visibility.kind;
+  else if (Declaration *d = sym->isDeclaration ())
+kind = d->visibility.kind;
+  else
+gcc_unreachable ();
+
+  if (kind == Visibility::private_)
 TREE_PRIVATE (node) = 1;
-  else if (visibility.kind == Visibility::protected_)
+  else if (kind == Visibility::protected_)
 TREE_PROTECTED (node) = 1;

   /* If the declaration was declared `export', append either the dllimport

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #12 from ibuclaw at gcc dot gnu.org ---
Looks like a bad mismatch between C++ and D.

When C++ calls the method, it pushes one register.  When D calls it, pushes
two.

Looks like the method itself returns the result in 2 registers as well - or
maybe uses return slot optimization.
---
// C++ Caller code
#include "tree.h"
#include "dmd/dsymbol.h"
#include "dmd/aggregate.h"
void
set_visibility_for_decl (tree node, Dsymbol *sym)
{
  Visibility visibility = sym->visible ();

// C++ Caller asm
pushl   %ebx
subl$20, %esp
.loc 1 2561 1
movl32(%esp), %eax
movl28(%esp), %ebx
.loc 1 2562 40
movl(%eax), %edx
pushl   %eax
call*104(%edx)

// D Caller code
import dmd.dsymbol;
import dmd.aggregate;
import dmd.gluelayer;
extern(C++)
void
set_visibility_for_decl (tree_node* node, Dsymbol sym)
{
  Visibility visibility = sym.visible();
}
// D Caller asm
subl$28, %esp
.loc 1 5 1
movl36(%esp), %eax
.loc 1 8 27
leal8(%esp), %ecx
subl$8, %esp
movl(%eax), %edx
pushl   %eax
pushl   %ecx
call*104(%edx)

// D Callee code
override final Visibility visible() pure nothrow @nogc @safe
{
  return visibility;
}
// D Callee asm
movl8(%esp), %edx
movl4(%esp), %eax
.loc 1 789 9
movl208(%edx), %ecx
movl212(%edx), %edx
movl%ecx, (%eax)
movl%edx, 4(%eax)
.loc 1 790 5
ret $4

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #13 from ibuclaw at gcc dot gnu.org ---
Confirmed, D is doing NRVO return whereas C++ isn't.

gdc-11 codegen of the `visible` method:

---
struct Visibility visible (struct AggregateDeclaration * const this)
{
  return  = this->visibility;
}
---

vs. gdc-mainline
---
struct Visibility visible (struct AggregateDeclaration * const this)
{
   = this->visibility;
  return ;
}
---

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #20 from ibuclaw at gcc dot gnu.org ---
(In reply to Andrew Pinski from comment #19)
> (In reply to Andrew Pinski from comment #18)
> > > I think the visibility type is POD (assuming D has that concept)
> 
> At least the front-end does.
> See dmd/dstruct.d:443
> 
> if isPOD return false, TREE_ADDRESSABLE is set on the struct.
> I have not gone through the code otherwise.
See d/decl.cc:950

It's not TREE_ADDRESSABLE, but on 32-bit the struct is considered to be
'aggregate_value_p', which in turn sets up return by hidden reference.

This effects how the return is handled later (around toir.cc:1044), which
splits up the init and return expression.  Returning this way I guess is fine
for extern(D) functions, however we should not be so eager to do rvo/sret for
other extern language functions.

Having a quick look at C++ front-end, they require both `aggregate_value_p` and
for a named variable to be in the return expression.

```
  if (current_function_return_value)
{
  tree r = current_function_return_value;
  tree outer;

  if (r != error_mark_node
  /* This is only worth doing for fns that return in memory--and
 simpler, since we don't have to worry about promoted modes.  */
  && aggregate_value_p (TREE_TYPE (TREE_TYPE (fndecl)), fndecl)
```

So for the current gate in D:
```
if (TREE_ADDRESSABLE (TREE_TYPE (resdecl))
|| aggregate_value_p (TREE_TYPE (resdecl), fndecl))
```

I think tightening that to (its late, and my parentheses may be wrong).
```
if (TREE_ADDRESSABLE (TREE_TYPE (resdecl))
|| ((d->resolvedLinkage () == LINK::d
 || (d->resolvedLinkage () == LINK::cpp && d->nrvo_var))
&& aggregate_value_p (TREE_TYPE (resdecl), fndecl)))
```
Which is:
1. TREE_ADDRESSABLE
2. extern(D) and aggregate_value_p
3. extern(C++) and have NVRO variable and aggregate_value_p

I guess for extern(C) functions we should just forget even attempting to do any
(N)RVO/SRET returns and let tree-nrv.cc decide whether to optimize or not.

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #21 from ibuclaw at gcc dot gnu.org ---
There is something about the Darwin ABI I'm just not getting from looking at
the front-end alone though:

C++ Darwin 32-bit calling a method that returns an 8 byte struct:
```
__Z4testP3Bar:
subl$24, %esp
movl28(%esp), %eax
movl(%eax), %edx
pushl   %eax// <--
call*(%edx)
```

C++ Linux 32-bit calling a method that returns an 8 byte struct:
```
_Z4testP3Bar:
subl$44, %esp
movl%gs:20, %edx
movl%edx, 28(%esp)
xorl%edx, %edx
movl48(%esp), %eax
leal8(%esp), %ecx
subl$8, %esp
movl(%eax), %edx
pushl   %eax// <--
pushl   %ecx// <--
call*(%edx)
```

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-23 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #22 from ibuclaw at gcc dot gnu.org ---
(In reply to ibuclaw from comment #21)
> There is something about the Darwin ABI I'm just not getting from looking at
> the front-end alone though:
Taken from a test Iain had sent me, and I've subsequently modified.
```
struct Visibility
{
enum Kind
{
undefined, none, private_,
package_, protected_,
public_, export_
};
Kind kind;
void *pkg;
};

class Bar
{
public:
int x;
virtual Visibility vis ();
};

Visibility Bar::vis () { return Visibility (); }

class Foo  : public Bar
{
public:
Visibility v;
int y;
Visibility vis () override final;
};

Visibility Foo::vis () { return v; }

int test (Bar *foo)
{
Visibility vis;
vis = foo->vis ();
return vis.kind;
}
```

[Bug d/106977] [13 regression] d21 dies with SIGBUS on 32-bit Darwin

2023-02-24 Thread ibuclaw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977

--- Comment #24 from ibuclaw at gcc dot gnu.org ---
(In reply to Iain Sandoe from comment #23)
> So the ABIs differ in this (as noted on IRC, the Darwin 32b ABIs are not the
> same as Linux).
I'm still yet to work out why D on 32-bit Darwin behaves the same as 32-bit
Linux though.  I would have assumed the decision to generate an sret would
occur long after the front-end has freed itself from the compilation process.

Regardless, the ABI issue can be raised in a separate PR. Because of it though,
that means for this bootstrap PR we just have to avoid calling any extern(C++)
method implemented in D that returns a struct by value.

  1   2   3   >