Skip to content
Snippets Groups Projects
  1. Dec 22, 2021
  2. Dec 21, 2021
  3. Dec 20, 2021
    • Iain Buclaw's avatar
      d: Merge upstream dmd ad8412530, druntime fd9a4544, phobos 495e835c2. · b3f58f87
      Iain Buclaw authored
      D front-end changes:
      
          - Import dmd v2.098.1
          - Remove calling of _d_delstruct from code generator.
      
      Druntime changes:
      
          - Import druntime v2.098.1
      
      Phobos changes:
      
          - Import phobos v2.098.1
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd ad8412530.
      	* expr.cc (ExprVisitor::visit (DeleteExp *)): Remove code generation
      	of _d_delstruct.
      	* runtime.def (DELSTRUCT): Remove.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime fd9a4544.
      	* src/MERGE: Merge upstream phobos 495e835c2.
      b3f58f87
  4. Dec 16, 2021
  5. Dec 15, 2021
    • Iain Buclaw's avatar
      d: Merge upstream dmd 93108bb9e, druntime 6364e010, phobos 575b67a9b. · fd43568c
      Iain Buclaw authored
      D front-end changes:
      
          - Import dmd v2.098.1-beta.1.
          - Default extern(C++) compatibility to C++17.
      
      Druntime changes:
      
          - Import druntime v2.098.1-beta.1.
          - Fix definition of stat_t on MIPS64 (PR103604)
      
      Phobos changes:
      
          - Import phobos v2.098.1-beta.1.
      
      gcc/d/ChangeLog:
      
      	* d-lang.cc (d_init_options): Set default -fextern-std= to C++17.
      	* dmd/MERGE: Merge upstream dmd 93108bb9e.
      	* gdc.texi (Runtime Options): Document the default for -fextern-std=.
      
      libphobos/ChangeLog:
      
      	PR d/103604
      	* configure: Regenerate.
      	* configure.ac (libtool_VERSION): Update to 3:0:0.
      	* libdruntime/MERGE: Merge upstream druntime 6364e010.
      	* src/MERGE: Merge upstream phobos 575b67a9b.
      	* testsuite/libphobos.traits/all_satisfy.d: New test.
      	* testsuite/libphobos.traits/traits.exp: New test.
      fd43568c
  6. Dec 11, 2021
  7. Dec 10, 2021
    • Iain Buclaw's avatar
      d: Merge upstream dmd 3982604c5, druntime bc58b1e9, phobos 12329adb6. · 9c7d5e88
      Iain Buclaw authored
      D front-end changes:
      
          - Import dmd mainline development.
          - Split off enum EXP from enum TOK.
          - Integer promotions now follow C integral promotions by default.
          - Implements __traits(initSymbol).
          - Lowering of array construction has been moved to the dmd
            front-end.
          - Fix segfault in dmd.lexer from unaligned read (PR103529).
      
      Druntime changes:
      
          - Import druntime mainline development.
          - Define SIG_BLOCK for Solaris (PR103528).
      
      Phobos changes:
      
          - Import phobos mainline development.
      
      gcc/d/ChangeLog:
      
      	PR d/103529
      	* dmd/MERGE: Merge upstream dmd 3982604c5.
      	* Make-lang.in (D_FRONTEND_OBJS): Add d/root-optional.o.
      	* d-attribs.cc (build_attributes): Update for new front-end interface.
      	* d-codegen.cc (d_build_call): Likewise.
      	* d-compiler.cc (Compiler::paintAsType): Likewise.
      	* d-lang.cc (d_handle_option): Remove OPT_fpreview_intpromote, add
      	handling of OPT_frevert_intpromote.
      	* d-port.cc (Port::valcpy): Assert buffer is aligned.
      	* d-target.cc (Target::isVectorOpSupported): Update for new front-end
      	interface.
      	* decl.cc (layout_class_initializer): Likewise.
      	* expr.cc (lvalue_p): Likewise.
      	(binop_assignment): Likewise.
      	(ExprVisitor::visit): Likewise.
      	(ExprVisitor::visit (AssignExp *)): Remove generation of _d_arrayctor
      	and _d_arraysetctor library helpers.
      	(ExprVisitor::visit (VarExp *)): Support __traits(initSymbol).
      	* intrinsics.cc (expand_intrinsic_rotate): Update for new front-end
      	interface.
      	* lang.opt (fpreview=intpromote): Remove.
      	(frevert=intpromote): New.
      	* runtime.def (ARRAYCTOR): Remove.
      	(ARRAYSETCTOR): Remove.
      	* toir.cc (IRVisitor::visit): Update for new front-end interface.
      	* types.cc (layout_aggregate_members): Likewise.
      	* dmd/root/optional.d: New file.
      	* dmd/root/optional.h: New file.
      
      libphobos/ChangeLog:
      
      	PR d/103528
      	* libdruntime/MERGE: Merge upstream druntime bc58b1e9.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES_LINUX): Remove
      	core/sys/linux/syscalls.d.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/MERGE: Merge upstream phobos 12329adb6.
      	* testsuite/libphobos.config/config.exp: Add test22523.
      	* libdruntime/core/sys/linux/syscalls.d: Removed.
      	* testsuite/libphobos.config/test22523.d: New test.
      9c7d5e88
  8. Dec 09, 2021
  9. Dec 08, 2021
    • Iain Buclaw's avatar
      d: Merge upstream dmd 568496d5b, druntime 178c44ff, phobos 574bf883b. · 0fb57034
      Iain Buclaw authored
      D front-end changes:
      
          - Import dmd v2.098.0
          - New ImportC module for compiling preprocessed C11 code into D.
          - New -ftransition=in switch.
          - Improved handling of new 'noreturn' type.
      
      Druntime changes:
      
          - Import druntime v2.098.0
          - Fix broken import in core.sys.linux.perf_event module (PR103558).
      
      Phobos changes:
      
          - Import phobos v2.098.0
          - All sources are now compiled with -fpreview=fieldwise.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd 568496d5b.
      	* Make-lang.in (D_FRONTEND_OBJS): Add d/common-file.o,
      	d/common-outbuffer.o, d/common-string.o, d/file_manager.o,
      	d/importc.o.  Remove d/root-outbuffer.o.
      	(d/common-%.o): New recipe.
      	* d-builtins.cc (build_frontend_type): Update for new front-end
      	interface.
      	(d_build_d_type_nodes): Set noreturn_type_node.
      	* d-codegen.cc (d_build_call): Don't call function if one of the
      	arguments is type 'noreturn'.
      	(build_vthis_function): Propagate TYPE_QUAL_VOLATILE from original
      	function type.
      	* d-frontend.cc (eval_builtin): Update signature.
      	(getTypeInfoType): Likewise.
      	(toObjFile): New function.
      	* d-gimplify.cc (d_gimplify_call_expr): Always evaluate arguments from
      	left to right.
      	* d-lang.cc (d_handle_option): Handle OPT_ftransition_in.
      	(d_parse_file): Don't generate D main if it is declared in user code.
      	* d-tree.h (CALL_EXPR_ARGS_ORDERED): Remove.
      	(enum d_tree_index): Add DTI_BOTTOM_TYPE.
      	(noreturn_type_node): New.
      	* decl.cc (apply_pragma_crt): Remove.
      	(DeclVisitor::visit): Update for new front-end interface.
      	(DeclVisitor::visit (PragmaDeclaration *)): Don't handle
      	crt_constructor and crt_destructor pragmas.
      	(DeclVisitor::visit (VarDeclaration *)): Don't generate declarations
      	of type 'noreturn'.
      	(DeclVisitor::visit (FuncDeclaration *)): Stop adding parameters when
      	'noreturn' type has been encountered.
      	(get_symbol_decl): Set DECL_STATIC_CONSTRUCTOR and
      	DECL_STATIC_DESTRUCTOR on decl node if requested.
      	(aggregate_initializer_decl): Update for new front-end interface.
      	* expr.cc (ExprVisitor::visit (CallExp *)): Always use the 'this'
      	object as the result of calling any constructor function.
      	(ExprVisitor::visit): Update for new front-end interface.
      	* gdc.texi (Runtime Options): Document -fmain and -ftransition=in.
      	* lang.opt (ftransition=in): New option.
      	* modules.cc (get_internal_fn): Update for new front-end interface.
      	* types.cc (TypeVisitor::visit): Likewise.
      	(TypeVisitor::visit (TypeNoreturn *)): Return noreturn_type_node.
      	(TypeVisitor::visit (TypeFunction *)): Stop adding parameters when
      	'notreturn' type has been encountered.  Qualify function types that
      	return 'noreturn' as TYPE_QUAL_VOLATILE.
      
      libphobos/ChangeLog:
      
      	PR d/103558
      	* libdruntime/MERGE: Merge upstream druntime 178c44ff.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES_LINUX): Add
      	core/sys/linux/syscalls.d.
      	(DRUNTIME_DSOURCES_OPENBSD): Add core/sys/openbsd/pthread_np.d.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/MERGE: Merge upstream phobos 574bf883b.
      	* src/Makefile.am (D_EXTRA_DFLAGS): Add -fpreview=fieldwise.
      	* src/Makefile.in: Regenerate.
      	* testsuite/libphobos.exceptions/assert_fail.d: Update test.
      	* testsuite/libphobos.betterc/test22336.d: New test.
      0fb57034
  10. Dec 03, 2021
  11. Dec 02, 2021
    • Iain Buclaw's avatar
      libphobos: Push all callee-save registers on the stack before GC scan on ARM · a27940fe
      Iain Buclaw authored
      This is the library fix for PR103520 that also prevents the garbage
      collector from releasing live memory.  However this requires that the
      host compiler has been patched with this fix, so the GC will remain
      disabled in the D front-end for now until enough time has passed for
      this to have trickled down into enough releases.
      
      libphobos/ChangeLog:
      
      	* libdruntime/core/thread/osthread.d (callWithStackShell): Push all
      	callee-save registers on the stack for AArch64 and ARM.
      a27940fe
    • Iain Buclaw's avatar
      libphobos: Add missing ControlState variable for AArch64 · 1c5317d6
      Iain Buclaw authored
      Fixes a typo that occurred during the splitting of the std.math module
      into a package.
      
      libphobos/ChangeLog:
      
      	* src/std/math/hardware.d (FloatingPointControl.getControlState): Add
      	missing ControlState variable for AArch64.
      1c5317d6
    • GCC Administrator's avatar
      Daily bump. · 40fa651e
      GCC Administrator authored
      40fa651e
  12. Dec 01, 2021
    • Iain Buclaw's avatar
      darwin, d: Support outfile substitution for libphobos · 185b307b
      Iain Buclaw authored
      In the gdc driver, this takes the previous fix for the Darwin D
      bootstrap, and extends it to the -static-libphobos option as well.
      Rather than pushing the -static-libphobos option back onto the command
      line, the setting of SKIPOPT is instead conditionally removed.  The same
      change has been repeated for -static-libstdc++ so there is now no need
      to call generate_option to re-add it.
      
      In the gcc driver, -static-libphobos has been added as a common option,
      validated, and a new outfile substition added to config/darwin.h to
      correctly replace -lgphobos with libgphobos.a.
      
      gcc/ChangeLog:
      
      	* common.opt (static-libphobos): Add option.
      	* config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a
      	when linking statically.
      	* gcc.c (driver_handle_option): Set -static-libphobos as always valid.
      
      gcc/d/ChangeLog:
      
      	* d-spec.cc (lang_specific_driver): Set SKIPOPT on -static-libstdc++
      	and -static-libphobos only when target supports LD_STATIC_DYNAMIC.
      	Remove generate_option to re-add -static-libstdc++.
      
      libphobos/ChangeLog:
      
      	* testsuite/testsuite_flags.in: Add libphobos library directory as
      	search path to --gdcldflags.
      185b307b
    • GCC Administrator's avatar
      Daily bump. · c177e806
      GCC Administrator authored
      c177e806
  13. Nov 30, 2021
    • Iain Buclaw's avatar
      d: Import dmd b8384668f, druntime e6caaab9, phobos 5ab9ad256 (v2.098.0-beta.1) · 5fee5ec3
      Iain Buclaw authored
      The D front-end is now itself written in D, in order to build GDC, you
      will need a working GDC compiler (GCC version 9.1 or later).
      
      GCC changes:
      
          - Add support for bootstrapping the D front-end.
      
      These add the required components in order to have a D front-end written
      in D itself.  Because the compiler front-end only depends on the core
      runtime modules, only libdruntime is built for the bootstrap stages.
      
      D front-end changes:
      
          - Import dmd v2.098.0-beta.1.
      
      Druntime changes:
      
          - Import druntime v2.098.0-beta.1.
      
      Phobos changes:
      
          - Import phobos v2.098.0-beta.1.
      
      The jump from v2.076.1 to v2.098.0 covers nearly 4 years worth of
      development on the D programming language and run-time libraries.
      
      ChangeLog:
      
      	* Makefile.def: Add bootstrap to libbacktrace, libphobos, zlib, and
      	libatomic.
      	* Makefile.in: Regenerate.
      	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Fix command for GDC.
      	(STAGE1_CONFIGURE_FLAGS): Add --with-libphobos-druntime-only if
      	target-libphobos-bootstrap.
      	(STAGE2_CONFIGURE_FLAGS): Likewise.
      	* configure: Regenerate.
      	* configure.ac: Add support for bootstrapping D front-end.
      
      config/ChangeLog:
      
      	* acx.m4 (ACX_PROG_GDC): New m4 function.
      
      gcc/ChangeLog:
      
      	* Makefile.in (GDC): New variable.
      	(GDCFLAGS): New variable.
      	* configure: Regenerate.
      	* configure.ac: Add call to ACX_PROG_GDC.  Substitute GDCFLAGS.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd b8384668f.
      	* Make-lang.in (d-warn): Use strict warnings.
      	(DMD_WARN_CXXFLAGS): Remove.
      	(DMD_COMPILE): Remove.
      	(CHECKING_DFLAGS): Define.
      	(WARN_DFLAGS): Define.
      	(ALL_DFLAGS): Define.
      	(DCOMPILE.base): Define.
      	(DCOMPILE): Define.
      	(DPOSTCOMPILE): Define.
      	(DLINKER): Define.
      	(DLLINKER): Define.
      	(D_FRONTEND_OBJS): Add new dmd front-end objects.
      	(D_GENERATED_SRCS): Remove.
      	(D_GENERATED_OBJS): Remove.
      	(D_ALL_OBJS): Remove D_GENERATED_OBJS.
      	(d21$(exeext)): Build using DLLINKER and -static-libphobos.
      	(d.tags): Remove dmd/*.c and dmd/root/*.c.
      	(d.mostlyclean): Remove D_GENERATED_SRCS, d/idgen$(build_exeext),
      	d/impcnvgen$(build_exeext).
      	(D_INCLUDES): Include $(srcdir)/d/dmd/res.
      	(CFLAGS-d/id.o): Remove.
      	(CFLAGS-d/impcnvtab.o): Remove.
      	(d/%.o): Build using DCOMPILE and DPOSTCOMPILE.  Update dependencies
      	from d/dmd/%.c to d/dmd/%.d.
      	(d/idgen$(build_exeext)): Remove.
      	(d/impcnvgen$(build_exeext)): Remove.
      	(d/id.c): Remove.
      	(d/id.h): Remove.
      	(d/impcnvtab.c): Remove.
      	(d/%.dmdgen.o): Remove.
      	(D_SYSTEM_H): Remove.
      	(d/idgen.dmdgen.o): Remove.
      	(d/impcnvgen.dmdgen.o): Remove.
      	* config-lang.in (boot_language): New variable.
      	* d-attribs.cc: Include dmd/expression.h.
      	* d-builtins.cc: Include d-frontend.h.
      	(build_frontend_type): Update for new front-end interface.
      	(d_eval_constant_expression): Likewise.
      	(d_build_builtins_module): Likewise.
      	(maybe_set_builtin_1): Likewise.
      	(d_build_d_type_nodes): Likewise.
      	* d-codegen.cc (d_decl_context): Likewise.
      	(declaration_reference_p): Likewise.
      	(declaration_type): Likewise.
      	(parameter_reference_p): Likewise.
      	(parameter_type): Likewise.
      	(get_array_length): Likewise.
      	(build_delegate_cst): Likewise.
      	(build_typeof_null_value): Likewise.
      	(identity_compare_p): Likewise.
      	(lower_struct_comparison): Likewise.
      	(build_filename_from_loc): Likewise.
      	(build_assert_call): Remove LIBCALL_SWITCH_ERROR.
      	(build_bounds_index_condition): Call LIBCALL_ARRAYBOUNDS_INDEXP on
      	bounds error.
      	(build_bounds_slice_condition): Call LIBCALL_ARRAYBOUNDS_SLICEP on
      	bounds error.
      	(array_bounds_check): Update for new front-end interface.
      	(checkaction_trap_p): Handle CHECKACTION_context.
      	(get_function_type): Update for new front-end interface.
      	(d_build_call): Likewise.
      	* d-compiler.cc: Remove include of dmd/scope.h.
      	(Compiler::genCmain): Remove.
      	(Compiler::paintAsType): Update for new front-end interface.
      	(Compiler::onParseModule): Likewise.
      	* d-convert.cc (convert_expr): Remove call to LIBCALL_ARRAYCAST.
      	(convert_for_rvalue): Update for new front-end interface.
      	(convert_for_assignment): Likewise.
      	(convert_for_condition): Likewise.
      	(d_array_convert): Likewise.
      	* d-diagnostic.cc (error): Remove.
      	(errorSupplemental): Remove.
      	(warning): Remove.
      	(warningSupplemental): Remove.
      	(deprecation): Remove.
      	(deprecationSupplemental): Remove.
      	(message): Remove.
      	(vtip): New.
      	* d-frontend.cc (global): Remove.
      	(Global::_init): Remove.
      	(Global::startGagging): Remove.
      	(Global::endGagging): Remove.
      	(Global::increaseErrorCount): Remove.
      	(Loc::Loc): Remove.
      	(Loc::toChars): Remove.
      	(Loc::equals): Remove.
      	(isBuiltin): Update for new front-end interface.
      	(eval_builtin): Likewise.
      	(getTypeInfoType): Likewise.
      	(inlineCopy): Remove.
      	* d-incpath.cc: Include d-frontend.h.
      	(add_globalpaths): Call d_gc_malloc to allocate Strings.
      	(add_filepaths): Likewise.
      	* d-lang.cc: Include dmd/id.h, dmd/root/file.h, d-frontend.h.  Remove
      	include of dmd/mars.h, id.h.
      	(entrypoint_module): Remove.
      	(entrypoint_root_module): Remove.
      	(deps_write_string): Update for new front-end interface.
      	(deps_write): Likewise.
      	(d_init_options): Call rt_init.  Remove setting global params that are
      	default initialized by the front-end.
      	(d_handle_option): Handle OPT_fcheckaction_, OPT_fdump_c___spec_,
      	OPT_fdump_c___spec_verbose, OPT_fextern_std_, OPT_fpreview,
      	OPT_revert, OPT_fsave_mixins_, and OPT_ftransition.
      	(d_post_options): Propagate dip1021 and dip1000 preview flags to
      	dip25, and flag_diagnostics_show_caret to printErrorContext.
      	(d_add_entrypoint_module): Remove.
      	(d_parse_file): Update for new front-end interface.
      	(d_type_promotes_to): Likewise.
      	(d_types_compatible_p): Likewise.
      	* d-longdouble.cc (CTFloat::zero): Remove.
      	(CTFloat::one): Remove.
      	(CTFloat::minusone): Remove.
      	(CTFloat::half): Remove.
      	* d-system.h (POSIX): Remove.
      	(realpath): Remove.
      	(isalpha): Remove.
      	(isalnum): Remove.
      	(isdigit): Remove.
      	(islower): Remove.
      	(isprint): Remove.
      	(isspace): Remove.
      	(isupper): Remove.
      	(isxdigit): Remove.
      	(tolower): Remove.
      	(_mkdir): Remove.
      	(INT32_MAX): Remove.
      	(INT32_MIN): Remove.
      	(INT64_MIN): Remove.
      	(UINT32_MAX): Remove.
      	(UINT64_MAX): Remove.
      	* d-target.cc: Include calls.h.
      	(target): Remove.
      	(define_float_constants): Remove initialization of snan.
      	(Target::_init): Update for new front-end interface.
      	(Target::isVectorTypeSupported): Likewise.
      	(Target::isVectorOpSupported): Remove cases for unordered operators.
      	(TargetCPP::typeMangle): Update for new front-end interface.
      	(TargetCPP::parameterType): Likewise.
      	(Target::systemLinkage): Likewise.
      	(Target::isReturnOnStack): Likewise.
      	(Target::isCalleeDestroyingArgs): Define.
      	(Target::preferPassByRef): Define.
      	* d-tree.h (d_add_entrypoint_module): Remove.
      	* decl.cc (gcc_attribute_p): Update for new front-end interface.
      	(apply_pragma_crt): Define.
      	(DeclVisitor::visit(PragmaDeclaration *)): Handle pragmas
      	crt_constructor and crt_destructor.
      	(DeclVisitor::visit(TemplateDeclaration *)): Update for new front-end
      	interface.
      	(DeclVisitor::visit): Likewise.
      	(DeclVisitor::finish_vtable): Likewise.
      	(get_symbol_decl): Error if template has more than one nesting
      	context.  Update for new front-end interface.
      	(make_thunk): Update for new front-end interface.
      	(get_vtable_decl): Likewise.
      	* expr.cc (ExprVisitor::visit): Likewise.
      	(build_return_dtor): Likewise.
      	* imports.cc (ImportVisitor::visit): Likewise.
      	* intrinsics.cc: Include dmd/expression.h.  Remove include of
      	dmd/mangle.h.
      	(maybe_set_intrinsic): Update for new front-end interface.
      	* intrinsics.def (INTRINSIC_ROL): Update intrinsic signature.
      	(INTRINSIC_ROR): Likewise.
      	(INTRINSIC_ROR_TIARG): Likewise.
      	(INTRINSIC_TOPREC): Likewise.
      	(INTRINSIC_TOPRECL): Likewise.
      	(INTRINSIC_TAN): Update intrinsic module and signature.
      	(INTRINSIC_ISNAN): Likewise.
      	(INTRINSIC_ISFINITE): Likewise.
      	(INTRINSIC_COPYSIGN): Define intrinsic.
      	(INTRINSIC_COPYSIGNI): Define intrinsic.
      	(INTRINSIC_EXP): Update intrinsic module.
      	(INTRINSIC_EXPM1): Likewise.
      	(INTRINSIC_EXP2): Likewise.
      	(INTRINSIC_LOG): Likewise.
      	(INTRINSIC_LOG2): Likewise.
      	(INTRINSIC_LOG10): Likewise.
      	(INTRINSIC_POW): Likewise.
      	(INTRINSIC_ROUND): Likewise.
      	(INTRINSIC_FLOORF): Likewise.
      	(INTRINSIC_FLOOR): Likewise.
      	(INTRINSIC_FLOORL): Likewise.
      	(INTRINSIC_CEILF): Likewise.
      	(INTRINSIC_CEIL): Likewise.
      	(INTRINSIC_CEILL): Likewise.
      	(INTRINSIC_TRUNC): Likewise.
      	(INTRINSIC_FMIN): Likewise.
      	(INTRINSIC_FMAX): Likewise.
      	(INTRINSIC_FMA): Likewise.
      	(INTRINSIC_VA_ARG): Update intrinsic signature.
      	(INTRINSIC_VASTART): Likewise.
      	* lang.opt (fcheck=): Add alternate aliases for contract switches.
      	(fcheckaction=): New option.
      	(check_action): New Enum and EnumValue entries.
      	(fdump-c++-spec-verbose): New option.
      	(fdump-c++-spec=): New option.
      	(fextern-std=): New option.
      	(extern_stdcpp): New Enum and EnumValue entries
      	(fpreview=): New options.
      	(frevert=): New options.
      	(fsave-mixins): New option.
      	(ftransition=): Update options.
      	* modules.cc (get_internal_fn): Replace Prot with Visibility.
      	(build_internal_fn): Likewise.
      	(build_dso_cdtor_fn): Likewise.
      	(build_module_tree): Remove check for __entrypoint module.
      	* runtime.def (P5): Define.
      	(ARRAYBOUNDS_SLICEP): Define.
      	(ARRAYBOUNDS_INDEXP): Define.
      	(NEWTHROW): Define.
      	(ADCMP2): Remove.
      	(ARRAYCAST): Remove.
      	(SWITCH_STRING): Remove.
      	(SWITCH_USTRING): Remove.
      	(SWITCH_DSTRING): Remove.
      	(SWITCH_ERROR): Remove.
      	* toir.cc (IRVisitor::visit): Update for new front-end interface.
      	(IRVisitor::check_previous_goto): Remove checks for case and default
      	statements.
      	(IRVisitor::visit(SwitchStatement *)): Remove handling of string
      	switch conditions.
      	* typeinfo.cc: Include d-frontend.h.
      	(get_typeinfo_kind): Update for new front-end interface.
      	(make_frontend_typeinfo): Likewise.
      	(TypeInfoVisitor::visit): Likewise.
      	(builtin_typeinfo_p): Likewise.
      	(get_typeinfo_decl): Likewise.
      	(build_typeinfo): Likewise.
      	* types.cc (valist_array_p): Likewise.
      	(make_array_type): Likewise.
      	(merge_aggregate_types): Likewise.
      	(TypeVisitor::visit(TypeBasic *)): Likewise.
      	(TypeVisitor::visit(TypeFunction *)): Likewise.
      	(TypeVisitor::visit(TypeStruct *)): Update comment.
      	* verstr.h: Removed.
      	* d-frontend.h: New file.
      
      gcc/po/ChangeLog:
      
      	* EXCLUDES: Remove d/dmd sources from list.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/Wcastresult2.d: Update test.
      	* gdc.dg/asm1.d: Likewise.
      	* gdc.dg/asm2.d: Likewise.
      	* gdc.dg/asm3.d: Likewise.
      	* gdc.dg/gdc282.d: Likewise.
      	* gdc.dg/imports/gdc170.d: Likewise.
      	* gdc.dg/intrinsics.d: Likewise.
      	* gdc.dg/pr101672.d: Likewise.
      	* gdc.dg/pr90650a.d: Likewise.
      	* gdc.dg/pr90650b.d: Likewise.
      	* gdc.dg/pr94777a.d: Likewise.
      	* gdc.dg/pr95250.d: Likewise.
      	* gdc.dg/pr96869.d: Likewise.
      	* gdc.dg/pr98277.d: Likewise.
      	* gdc.dg/pr98457.d: Likewise.
      	* gdc.dg/simd1.d: Likewise.
      	* gdc.dg/simd2a.d: Likewise.
      	* gdc.dg/simd2b.d: Likewise.
      	* gdc.dg/simd2c.d: Likewise.
      	* gdc.dg/simd2d.d: Likewise.
      	* gdc.dg/simd2e.d: Likewise.
      	* gdc.dg/simd2f.d: Likewise.
      	* gdc.dg/simd2g.d: Likewise.
      	* gdc.dg/simd2h.d: Likewise.
      	* gdc.dg/simd2i.d: Likewise.
      	* gdc.dg/simd2j.d: Likewise.
      	* gdc.dg/simd7951.d: Likewise.
      	* gdc.dg/torture/gdc309.d: Likewise.
      	* gdc.dg/torture/pr94424.d: Likewise.
      	* gdc.dg/torture/pr94777b.d: Likewise.
      	* lib/gdc-utils.exp (gdc-convert-args): Handle new compiler options.
      	(gdc-convert-test): Handle CXXFLAGS, EXTRA_OBJC_SOURCES, and ARG_SETS
      	test directives.
      	(gdc-do-test): Only import modules in the test run directory.
      	* gdc.dg/pr94777c.d: New test.
      	* gdc.dg/pr96156b.d: New test.
      	* gdc.dg/pr96157c.d: New test.
      	* gdc.dg/simd_ctfe.d: New test.
      	* gdc.dg/torture/simd17344.d: New test.
      	* gdc.dg/torture/simd20052.d: New test.
      	* gdc.dg/torture/simd6.d: New test.
      	* gdc.dg/torture/simd7.d: New test.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime e6caaab9.
      	* libdruntime/Makefile.am (D_EXTRA_FLAGS): Build libdruntime with
      	-fpreview=dip1000, -fpreview=fieldwise, and -fpreview=dtorfields.
      	(ALL_DRUNTIME_SOURCES): Add DRUNTIME_DSOURCES_STDCXX.
      	(DRUNTIME_DSOURCES): Update list of C binding modules.
      	(DRUNTIME_DSOURCES_STDCXX): Likewise.
      	(DRUNTIME_DSOURCES_LINUX): Likewise.
      	(DRUNTIME_DSOURCES_OPENBSD): Likewise.
      	(DRUNTIME_DISOURCES): Remove __entrypoint.di.
      	* libdruntime/Makefile.in: Regenerated.
      	* libdruntime/__entrypoint.di: Removed.
      	* libdruntime/gcc/deh.d (_d_isbaseof): Update signature.
      	(_d_createTrace): Likewise.
      	(__gdc_begin_catch): Remove reference to the exception.
      	(_d_throw): Increment reference count of thrown object before unwind.
      	(__gdc_personality): Chain exceptions with  Throwable.chainTogether.
      	* libdruntime/gcc/emutls.d: Update imports.
      	* libdruntime/gcc/sections/elf.d: Update imports.
      	(DSO.moduleGroup): Update signature.
      	* libdruntime/gcc/sections/macho.d: Update imports.
      	(DSO.moduleGroup): Update signature.
      	* libdruntime/gcc/sections/pecoff.d: Update imports.
      	(DSO.moduleGroup): Update signature.
      	* src/MERGE: Merge upstream phobos 5ab9ad256.
      	* src/Makefile.am (D_EXTRA_DFLAGS): Add -fpreview=dip1000 and
      	-fpreview=dtorfields flags.
      	(PHOBOS_DSOURCES): Update list of std modules.
      	* src/Makefile.in: Regenerate.
      	* testsuite/lib/libphobos.exp (libphobos-dg-test): Handle assembly
      	compile types.
      	(dg-test): Override.
      	(additional_prunes): Define.
      	(libphobos-dg-prune): Filter any additional_prunes set by tests.
      	* testsuite/libphobos.aa/test_aa.d: Update test.
      	* testsuite/libphobos.druntime/druntime.exp (version_flags): Add
      	-fversion=CoreUnittest.
      	* testsuite/libphobos.druntime_shared/druntime_shared.exp
      	(version_flags): Add -fversion=CoreUnittest -fversion=Shared.
      	* testsuite/libphobos.exceptions/unknown_gc.d: Update test.
      	* testsuite/libphobos.hash/test_hash.d: Update test.
      	* testsuite/libphobos.phobos/phobos.exp (version_flags): Add
      	-fversion=StdUnittest
      	* testsuite/libphobos.phobos_shared/phobos_shared.exp (version_flags):
      	Likewise.
      	* testsuite/libphobos.shared/host.c: Update test.
      	* testsuite/libphobos.shared/load.d: Update test.
      	* testsuite/libphobos.shared/load_13414.d: Update test.
      	* testsuite/libphobos.thread/fiber_guard_page.d: Update test.
      	* testsuite/libphobos.thread/tlsgc_sections.d: Update test.
      	* testsuite/testsuite_flags.in: Add -fpreview=dip1000 to --gdcflags.
      	* testsuite/libphobos.shared/link_mod_collision.d: Removed.
      	* testsuite/libphobos.shared/load_mod_collision.d: Removed.
      	* testsuite/libphobos.betterc/betterc.exp: New test.
      	* testsuite/libphobos.config/config.exp: New test.
      	* testsuite/libphobos.gc/gc.exp: New test.
      	* testsuite/libphobos.imports/imports.exp: New test.
      	* testsuite/libphobos.lifetime/lifetime.exp: New test.
      	* testsuite/libphobos.unittest/unittest.exp: New test.
      5fee5ec3
  14. Nov 20, 2021
  15. Nov 19, 2021
    • Iain Sandoe's avatar
      libphobos, testsuite: Add prune clauses for two Darwin cases. · 532fae74
      Iain Sandoe authored
      
      Depending on the permutation of CPU, OS version and shared/non-
      shared library inclusion, we get can get two warnings from the
      external tools (ld64, dsymutil) which are not actually GCC issues
      but relate to the external tools.  These are alrrady pruned in
      the main testsuite, this adds them to the library.
      
      Signed-off-by: default avatarIain Sandoe <iain@sandoe.co.uk>
      
      libphobos/ChangeLog:
      
      	* testsuite/lib/libphobos.exp: Prune warnings from external
      	tool bugs.
      532fae74
    • Iain Buclaw's avatar
      libphobos: Increase size of defaultStackPages on OSX X86_64 targets. · f316727e
      Iain Buclaw authored
      As of macOS 11, libunwind now requires more stack space than 16k, so
      default to a larger stack size. This is only applied to X86 as the
      PAGESIZE is still 4k, however on AArch64 it is 16k.
      
      libphobos/ChangeLog:
      
      	* libdruntime/core/thread/fiber.d (defaultStackPages): Increase size
      	on OSX X86_64 targets.
      f316727e
    • Iain Buclaw's avatar
      libphobos: Don't call __gthread_key_delete in the emutls destroy function. · d686cb0d
      Iain Buclaw authored
      Fixes a EXC_BAD_ACCESS issue seen on Darwin when the libphobos DSO gets
      unloaded.  Based on reading libgcc's emutls implementation, as it
      doesn't call __gthread_key_delete directly, neither should libphobos.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/emutls.d (emutlsDestroyThread): Don't remove entry
      	from global array.
      	(_d_emutls_destroy): Don't call __gthread_key_delete.
      d686cb0d
  16. Nov 01, 2021
  17. Oct 31, 2021
    • Iain Buclaw's avatar
      d: Fix regressing test failures on ix86-solaris2.11 · d41092ec
      Iain Buclaw authored
      The _Unwind_Exception struct had its alignment adjusted to 16-bytes,
      however malloc() on Solaris X86 is not guaranteed to allocate memory
      aligned to 16-bytes as well.
      
      	PR d/102837
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/deh.d (ExceptionHeader.free): Use memset to reset
      	contents of internal EH storage.
      d41092ec
  18. Oct 01, 2021
  19. Sep 30, 2021
    • Iain Buclaw's avatar
      libphobos: Select the appropriate exception handler in getClassInfo · 8088a33d
      Iain Buclaw authored
      This is analogous to __gdc_personality, which ignores in-flight
      exceptions that we haven't collided with yet.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/deh.d (ExceptionHeader.getClassInfo): Move to...
      	(getClassInfo): ...here as free function.  Add lsda parameter.
      	(scanLSDA): Pass lsda to actionTableLookup.
      	(actionTableLookup): Add lsda parameter, pass to getClassInfo.
      	(__gdc_personality): Remove currentCfa variable.
      8088a33d
    • Iain Buclaw's avatar
      libphobos: Print stacktrace before terminating program due to uncaught exception. · ed3ec734
      Iain Buclaw authored
      By default, D run-time has a top level exception handler to catch
      anything that was uncaught by user code.  However when the
      `rt_trapExceptions' flag is cleared, this handler would not be enabled,
      and this termination would occur, aborting the program, but without any
      information about the exception.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/deh.d (_d_print_throwable): Declare.
      	(_d_throw): Print stacktrace before terminating program due to
      	uncaught exception.
      ed3ec734
    • Iain Buclaw's avatar
      libphobos: Remove unused variables in gcc.backtrace. · 01111532
      Iain Buclaw authored
      The core.runtime module always overrides the default parameter value for
      constructor calls.  MaxAlignment is not required because a class can be
      created on the stack with the `scope' keyword.
      
      libphobos/ChangeLog:
      
      	* libdruntime/core/runtime.d (runModuleUnitTests): Use scope to new
      	LibBacktrace on the stack.
      	* libdruntime/gcc/backtrace.d (FIRSTFRAME): Remove.
      	(LibBacktrace.MaxAlignment): Remove.
      	(LibBacktrace.this): Remove default initialization of firstFrame.
      	(UnwindBacktrace.this): Likewise.
      01111532
    • Iain Buclaw's avatar
      libphobos: Give _Unwind_Exception an alignment that best resembles __attribute__((aligned)) · efa5449a
      Iain Buclaw authored
      For interoperability with C++ EH, the alignment should match, otherwise
      D may not be able to intercept exceptions thrown from C++.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/unwind/generic.d (__aligned__): Define.
      	(_Unwind_Exception): Align struct to __aligned__.
      efa5449a
    • Iain Buclaw's avatar
      libphobos: Define main function as extern(C) when compiling without D runtime (PR102476) · d46a29d9
      Iain Buclaw authored
      The default supplied main function as read when compiling with `-fmain'
      has extern(D) linkage.  However this does not work when mixing this
      option together with `-fno-druntime'.
      
      	PR d/102476
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/pr102476.d: New test.
      
      libphobos/ChangeLog:
      
      	* libdruntime/__main.di: Define main function as extern(C) when
      	compiling without D runtime.
      d46a29d9
  20. Sep 02, 2021
  21. Sep 01, 2021
  22. Aug 31, 2021
  23. Aug 30, 2021
  24. Jun 12, 2021
  25. Jun 11, 2021
    • Iain Buclaw's avatar
      d: foreach over a tuple doesn't work on 16-bit targets (PR100999) · 68f46862
      Iain Buclaw authored
      Improves semantic passes in the front-end around the `foreach' and
      `static foreach' statements to be more resilient to compiling in a
      minimal D runtime environment.  Checking of the index type has been
      improved as well so now there won't be needless compiler errors when
      using 8 or 16-bit integers as index types when the size fits the
      expected loop range.
      
      gcc/d/ChangeLog:
      
      	PR d/100999
      	* dmd/MERGE: Merge upstream dmd 7a3808254.
      
      libphobos/ChangeLog:
      
      	PR d/100999
      	* src/MERGE: Merge upstream phobos 55bb17543.
      68f46862
  26. May 15, 2021
  27. May 14, 2021
  28. May 13, 2021
Loading