d: Merge upstream dmd 52844d4b1, druntime dbd0c874, phobos 896b1d0e1.
authorIain Buclaw <ibuclaw@gdcproject.org>
Sun, 13 Feb 2022 19:17:53 +0000 (20:17 +0100)
committerIain Buclaw <ibuclaw@gdcproject.org>
Wed, 16 Feb 2022 10:15:02 +0000 (11:15 +0100)
commitd75691877c4a7521a995d2601021fcaf30f65d94
tree36509d835d63b98ad1130ac9d4695b5033c10428
parent023327643969d5469902a9ecfa6738a315f9e362
d: Merge upstream dmd 52844d4b1, druntime dbd0c874, phobos 896b1d0e1.

D front-end changes:

    - Parsing and compiling C code is now possible using `import'.
    - `throw' statements can now be used as an expression.
    - Improvements to the D template emission strategy when compiling
      with `-funittest'.

D Runtime changes:

    - New core.int128 module for implementing intrinsics to support
      128-bit integer types.
    - C bindings for the kernel and C runtime have been better separated
      to allow compiling for hybrid targets, such as kFreeBSD.

Phobos changes:

    - The std.experimental.checkedint module has been renamed to
      std.checkedint.

gcc/d/ChangeLog:

* d-builtins.cc (d_build_builtins_module): Set purity of DECL_PURE_P
functions to PURE::const_.
* d-gimplify.cc (bit_field_ref): New function.
(d_gimplify_modify_expr): Handle implicit casting for assignments to
bit-fields.
(d_gimplify_unary_expr): New function.
(d_gimplify_binary_expr): New function.
(d_gimplify_expr): Handle UNARY_CLASS_P and BINARY_CLASS_P.
* d-target.cc (Target::_init): Initialize bitFieldStyle.
(TargetCPP::parameterType): Update signature.
(Target::supportsLinkerDirective): New function.
* dmd/MERGE: Merge upstream dmd 52844d4b1.
* expr.cc (ExprVisitor::visit (ThrowExp *)): New function.
* types.cc (d_build_bitfield_integer_type): New function.
(insert_aggregate_bitfield): New function.
(layout_aggregate_members): Handle inserting bit-fields into an
aggregate type.

libphobos/ChangeLog:

* Makefile.in: Regenerate.
* libdruntime/MERGE: Merge upstream druntime dbd0c874.
* libdruntime/Makefile.am (DRUNTIME_CSOURCES): Add core/int128.d.
(DRUNTIME_DISOURCES): Add __builtins.di.
* libdruntime/Makefile.in: Regenerate.
* src/MERGE: Merge upstream phobos 896b1d0e1.
* src/Makefile.am (PHOBOS_DSOURCES): Add std/checkedint.d.
* src/Makefile.in: Regenerate.
* testsuite/testsuite_flags.in: Add -fall-instantiations to
--gdcflags.
289 files changed:
gcc/d/d-builtins.cc
gcc/d/d-gimplify.cc
gcc/d/d-target.cc
gcc/d/dmd/MERGE
gcc/d/dmd/README.md
gcc/d/dmd/access.d
gcc/d/dmd/astenums.d
gcc/d/dmd/attrib.d
gcc/d/dmd/blockexit.d
gcc/d/dmd/canthrow.d
gcc/d/dmd/constfold.d
gcc/d/dmd/cparse.d
gcc/d/dmd/cppmangle.d
gcc/d/dmd/dcast.d
gcc/d/dmd/dclass.d
gcc/d/dmd/declaration.d
gcc/d/dmd/denum.d
gcc/d/dmd/dinterpret.d
gcc/d/dmd/dscope.d
gcc/d/dmd/dsymbol.d
gcc/d/dmd/dsymbolsem.d
gcc/d/dmd/dtemplate.d
gcc/d/dmd/dtoh.d
gcc/d/dmd/escape.d
gcc/d/dmd/expression.d
gcc/d/dmd/expression.h
gcc/d/dmd/expressionsem.d
gcc/d/dmd/func.d
gcc/d/dmd/globals.d
gcc/d/dmd/globals.h
gcc/d/dmd/hdrgen.d
gcc/d/dmd/id.d
gcc/d/dmd/json.d
gcc/d/dmd/mtype.d
gcc/d/dmd/mtype.h
gcc/d/dmd/nogc.d
gcc/d/dmd/nspace.d
gcc/d/dmd/objc.d
gcc/d/dmd/opover.d
gcc/d/dmd/optimize.d
gcc/d/dmd/parse.d
gcc/d/dmd/parsetimevisitor.d
gcc/d/dmd/root/README.md
gcc/d/dmd/root/optional.d
gcc/d/dmd/sideeffect.d
gcc/d/dmd/statement.d
gcc/d/dmd/statement.h
gcc/d/dmd/statementsem.d
gcc/d/dmd/staticcond.d
gcc/d/dmd/target.d
gcc/d/dmd/target.h
gcc/d/dmd/template.h
gcc/d/dmd/tokens.d
gcc/d/dmd/tokens.h
gcc/d/dmd/traits.d
gcc/d/dmd/transitivevisitor.d
gcc/d/dmd/typesem.d
gcc/d/dmd/visitor.h
gcc/d/expr.cc
gcc/d/types.cc
gcc/testsuite/gdc.test/compilable/casttuple.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/deprecated_override.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/extra-files/header1.d
gcc/testsuite/gdc.test/compilable/fix17635.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/fix22291.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/imports/cstuff3.c [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/imports/imp22625.c [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/imports/imp22665.c [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/imports/test22685b.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/imports/test22685c.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/issue22130.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/noreturn1.d
gcc/testsuite/gdc.test/compilable/test13008.d
gcc/testsuite/gdc.test/compilable/test18771.d
gcc/testsuite/gdc.test/compilable/test19609.d
gcc/testsuite/gdc.test/compilable/test19873.d
gcc/testsuite/gdc.test/compilable/test21299a.d
gcc/testsuite/gdc.test/compilable/test22619.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test22625.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test22646.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test22665.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test22676.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test22685.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test55.d
gcc/testsuite/gdc.test/compilable/testcstuff3.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/testos.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/b16967.d [moved from gcc/testsuite/gdc.test/compilable/b16967.d with 70% similarity]
gcc/testsuite/gdc.test/fail_compilation/bug5096.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/bug9631.d
gcc/testsuite/gdc.test/fail_compilation/casttuple.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/constraints_aggr.d
gcc/testsuite/gdc.test/fail_compilation/constraints_func1.d
gcc/testsuite/gdc.test/fail_compilation/constraints_func2.d
gcc/testsuite/gdc.test/fail_compilation/constraints_func3.d
gcc/testsuite/gdc.test/fail_compilation/constraints_func4.d
gcc/testsuite/gdc.test/fail_compilation/diag11819b.d
gcc/testsuite/gdc.test/fail_compilation/diag13333.d
gcc/testsuite/gdc.test/fail_compilation/diag13942.d
gcc/testsuite/gdc.test/fail_compilation/diag16271.d
gcc/testsuite/gdc.test/fail_compilation/diag16977.d
gcc/testsuite/gdc.test/fail_compilation/diag19225.d
gcc/testsuite/gdc.test/fail_compilation/diag8101.d
gcc/testsuite/gdc.test/fail_compilation/diag8648.d
gcc/testsuite/gdc.test/fail_compilation/diag8684.d
gcc/testsuite/gdc.test/fail_compilation/diag9004.d
gcc/testsuite/gdc.test/fail_compilation/diag9420.d
gcc/testsuite/gdc.test/fail_compilation/diagin.d
gcc/testsuite/gdc.test/fail_compilation/dip25.d
gcc/testsuite/gdc.test/fail_compilation/fail10964.d
gcc/testsuite/gdc.test/fail_compilation/fail11453a.d
gcc/testsuite/gdc.test/fail_compilation/fail11453b.d
gcc/testsuite/gdc.test/fail_compilation/fail11653.d
gcc/testsuite/gdc.test/fail_compilation/fail12744.d
gcc/testsuite/gdc.test/fail_compilation/fail132.d
gcc/testsuite/gdc.test/fail_compilation/fail14669.d
gcc/testsuite/gdc.test/fail_compilation/fail162.d
gcc/testsuite/gdc.test/fail_compilation/fail18417.d
gcc/testsuite/gdc.test/fail_compilation/fail196.d
gcc/testsuite/gdc.test/fail_compilation/fail19609.d
gcc/testsuite/gdc.test/fail_compilation/fail19897.d
gcc/testsuite/gdc.test/fail_compilation/fail207.d
gcc/testsuite/gdc.test/fail_compilation/fail20730b.d
gcc/testsuite/gdc.test/fail_compilation/fail21830.d
gcc/testsuite/gdc.test/fail_compilation/fail21831.d
gcc/testsuite/gdc.test/fail_compilation/fail21832.d
gcc/testsuite/gdc.test/fail_compilation/fail220.d
gcc/testsuite/gdc.test/fail_compilation/fail22035.d
gcc/testsuite/gdc.test/fail_compilation/fail22084.d
gcc/testsuite/gdc.test/fail_compilation/fail22133.d
gcc/testsuite/gdc.test/fail_compilation/fail22144.d
gcc/testsuite/gdc.test/fail_compilation/fail22749.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/fail236.d
gcc/testsuite/gdc.test/fail_compilation/fail276.d
gcc/testsuite/gdc.test/fail_compilation/fail4269e.d
gcc/testsuite/gdc.test/fail_compilation/fail59.d
gcc/testsuite/gdc.test/fail_compilation/fail60.d
gcc/testsuite/gdc.test/fail_compilation/fail8009.d
gcc/testsuite/gdc.test/fail_compilation/fail95.d
gcc/testsuite/gdc.test/fail_compilation/fix17635.d [deleted file]
gcc/testsuite/gdc.test/fail_compilation/ice11856_0.d
gcc/testsuite/gdc.test/fail_compilation/ice11856_1.d
gcc/testsuite/gdc.test/fail_compilation/ice14130.d
gcc/testsuite/gdc.test/fail_compilation/ice14907.d
gcc/testsuite/gdc.test/fail_compilation/ice6538.d
gcc/testsuite/gdc.test/fail_compilation/ice9284.d
gcc/testsuite/gdc.test/fail_compilation/imports/imp18554.d [deleted file]
gcc/testsuite/gdc.test/fail_compilation/imports/imp22749.c [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/issue21936.d [deleted file]
gcc/testsuite/gdc.test/fail_compilation/noreturn.d
gcc/testsuite/gdc.test/fail_compilation/noreturn2.d
gcc/testsuite/gdc.test/fail_compilation/objc_class2.d
gcc/testsuite/gdc.test/fail_compilation/objc_class3.d
gcc/testsuite/gdc.test/fail_compilation/objc_non_objc_base.d
gcc/testsuite/gdc.test/fail_compilation/reg6769.d
gcc/testsuite/gdc.test/fail_compilation/reserved_version.d
gcc/testsuite/gdc.test/fail_compilation/reserved_version_switch.d
gcc/testsuite/gdc.test/fail_compilation/retscope5.d
gcc/testsuite/gdc.test/fail_compilation/test15191.d
gcc/testsuite/gdc.test/fail_compilation/test16188.d
gcc/testsuite/gdc.test/fail_compilation/test16589.d
gcc/testsuite/gdc.test/fail_compilation/test17284.d
gcc/testsuite/gdc.test/fail_compilation/test17450.d
gcc/testsuite/gdc.test/fail_compilation/test18554.d [deleted file]
gcc/testsuite/gdc.test/fail_compilation/test19107.d
gcc/testsuite/gdc.test/fail_compilation/test19193.d
gcc/testsuite/gdc.test/fail_compilation/test21912.d
gcc/testsuite/gdc.test/fail_compilation/test22298.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/test22541.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/test22709.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/test3818.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/test9701.d
gcc/testsuite/gdc.test/fail_compilation/test9701b.d
gcc/testsuite/gdc.test/fail_compilation/traits_parameters.d [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/a18.d
gcc/testsuite/gdc.test/runnable/a19.d
gcc/testsuite/gdc.test/runnable/b26.d
gcc/testsuite/gdc.test/runnable/class_opCmp.d [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/fix22624.d [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/ice15138.d
gcc/testsuite/gdc.test/runnable/ice15176.d
gcc/testsuite/gdc.test/runnable/ice15200.d
gcc/testsuite/gdc.test/runnable/imports/imp22624.c [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/issue16995.d
gcc/testsuite/gdc.test/runnable/link10425.d
gcc/testsuite/gdc.test/runnable/link11069b.d
gcc/testsuite/gdc.test/runnable/link11395.d
gcc/testsuite/gdc.test/runnable/link12010.d
gcc/testsuite/gdc.test/runnable/link13394.d
gcc/testsuite/gdc.test/runnable/link13400.d
gcc/testsuite/gdc.test/runnable/link13415.d
gcc/testsuite/gdc.test/runnable/link14588.d
gcc/testsuite/gdc.test/runnable/link14814.d
gcc/testsuite/gdc.test/runnable/link15017.d
gcc/testsuite/gdc.test/runnable/link7745.d
gcc/testsuite/gdc.test/runnable/link8023.d
gcc/testsuite/gdc.test/runnable/link9571.d
gcc/testsuite/gdc.test/runnable/linktypeinfo.d
gcc/testsuite/gdc.test/runnable/noreturn1.d
gcc/testsuite/gdc.test/runnable/test11039.d
gcc/testsuite/gdc.test/runnable/test11239.d
gcc/testsuite/gdc.test/runnable/test11447a.d
gcc/testsuite/gdc.test/runnable/test11447b.d
gcc/testsuite/gdc.test/runnable/test11447c.d
gcc/testsuite/gdc.test/runnable/test11863.d
gcc/testsuite/gdc.test/runnable/test14901.d
gcc/testsuite/gdc.test/runnable/test18868.d
gcc/testsuite/gdc.test/runnable/test27.d
gcc/testsuite/gdc.test/runnable/test29.d
gcc/testsuite/gdc.test/runnable/test31.d
gcc/testsuite/gdc.test/runnable/test32.d
gcc/testsuite/gdc.test/runnable/test38.d
gcc/testsuite/gdc.test/runnable/test46.d
gcc/testsuite/gdc.test/runnable/test49.d
gcc/testsuite/gdc.test/runnable/test57.d
gcc/testsuite/gdc.test/runnable/test7494.d
gcc/testsuite/gdc.test/runnable/test8997.d
gcc/testsuite/gdc.test/runnable/testmod1.d
gcc/testsuite/gdc.test/runnable/tls_dup.d
gcc/testsuite/gdc.test/runnable_cxx/cppa.d
libphobos/Makefile.in
libphobos/libdruntime/MERGE
libphobos/libdruntime/Makefile.am
libphobos/libdruntime/Makefile.in
libphobos/libdruntime/__builtins.di [new file with mode: 0644]
libphobos/libdruntime/core/demangle.d
libphobos/libdruntime/core/int128.d [new file with mode: 0644]
libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
libphobos/libdruntime/core/lifetime.d
libphobos/libdruntime/core/memory.d
libphobos/libdruntime/core/stdc/math.d
libphobos/libdruntime/core/sys/darwin/dlfcn.d
libphobos/libdruntime/core/sys/dragonflybsd/dlfcn.d
libphobos/libdruntime/core/sys/freebsd/dlfcn.d
libphobos/libdruntime/core/sys/linux/dlfcn.d
libphobos/libdruntime/core/sys/linux/sys/inotify.d
libphobos/libdruntime/core/sys/netbsd/dlfcn.d
libphobos/libdruntime/core/sys/openbsd/dlfcn.d
libphobos/libdruntime/core/sys/posix/dirent.d
libphobos/libdruntime/core/sys/posix/dlfcn.d
libphobos/libdruntime/core/sys/posix/fcntl.d
libphobos/libdruntime/core/sys/posix/poll.d
libphobos/libdruntime/core/sys/posix/sched.d
libphobos/libdruntime/core/sys/posix/signal.d
libphobos/libdruntime/core/sys/posix/stdc/time.d
libphobos/libdruntime/core/sys/posix/stdio.d
libphobos/libdruntime/core/sys/posix/sys/ioctl.d
libphobos/libdruntime/core/sys/posix/sys/ipc.d
libphobos/libdruntime/core/sys/posix/sys/mman.d
libphobos/libdruntime/core/sys/posix/sys/resource.d
libphobos/libdruntime/core/sys/posix/sys/shm.d
libphobos/libdruntime/core/sys/posix/sys/socket.d
libphobos/libdruntime/core/sys/posix/sys/stat.d
libphobos/libdruntime/core/sys/posix/sys/types.d
libphobos/libdruntime/core/sys/posix/sys/wait.d
libphobos/libdruntime/core/sys/posix/termios.d
libphobos/libdruntime/core/sys/posix/ucontext.d
libphobos/libdruntime/core/sys/solaris/dlfcn.d
libphobos/libdruntime/core/sys/windows/wingdi.d
libphobos/libdruntime/core/thread/osthread.d
libphobos/libdruntime/object.d
libphobos/libdruntime/rt/dmain2.d
libphobos/libdruntime/rt/util/typeinfo.d
libphobos/src/MERGE
libphobos/src/Makefile.am
libphobos/src/Makefile.in
libphobos/src/index.dd
libphobos/src/std/array.d
libphobos/src/std/checkedint.d [new file with mode: 0644]
libphobos/src/std/complex.d
libphobos/src/std/conv.d
libphobos/src/std/experimental/allocator/package.d
libphobos/src/std/experimental/checkedint.d
libphobos/src/std/experimental/logger/core.d
libphobos/src/std/experimental/logger/filelogger.d
libphobos/src/std/experimental/logger/multilogger.d
libphobos/src/std/file.d
libphobos/src/std/format/package.d
libphobos/src/std/functional.d
libphobos/src/std/json.d
libphobos/src/std/path.d
libphobos/src/std/process.d
libphobos/src/std/range/package.d
libphobos/src/std/regex/package.d
libphobos/src/std/stdio.d
libphobos/src/std/traits.d
libphobos/src/std/typecons.d
libphobos/src/std/utf.d
libphobos/src/std/variant.d
libphobos/testsuite/testsuite_flags.in