Hi, This patch merges the D front-end with upstream dmd 47871363d, and the standard library with druntime c52e28b7 and phobos 99e9c1b77. D front-end changes: - Import dmd v2.099.1-beta.1. - The address of NRVO variables is now stored in scoped closures when they have nested references. - Using `__traits(parameters)' in foreach loops now always returns the parameters to the function the foreach appears within. Previously, when used inside a `foreach' using an overloaded `opApply', the trait would yield the parameters to the delegate. - The deprecation period of unannotated `asm' blocks has been ended. - The `inout' attribute no longer implies the `return' attribute. - Added new `D_PreConditions', `D_PostConditions', and `D_Invariants' version identifiers. D runtime changes: - Import druntime v2.099.1-beta.1. Phobos changes: - Import phobos v2.099.1-beta.1. - `Nullable' in `std.typecons' can now act as a range. - std.experimental.logger default level changed to `info' instead of `warning'. Bootstrapped and regression tested on x86_64-linux-gnu/-m32/-mx32, and committed to mainline. Regards, Iain. --- gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd 47871363d. * d-builtins.cc (d_init_versions): Add predefined version identifiers D_PreConditions, D_PostConditions, and D_Invariants. * d-codegen.cc (d_build_call): Update for new front-end interface. (build_frame_type): Generate reference field for NRVO variables with nested references. (build_closure): Generate assignment of return address to closure. * d-tree.h (DECL_INSTANTIATED): Use DECL_LANG_FLAG_2. (bind_expr): Remove. * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Update for new front-end interface. (get_symbol_decl): Likewise. (get_decl_tree): Check DECL_LANG_FRAME_FIELD before DECL_LANG_NRVO. Dereference the field when both are set. * expr.cc (ExprVisitor::visit (DeleteExp *)): Update for new front-end interface. * modules.cc (get_internal_fn): Likewise. * toir.cc (IRVisitor::visit (ReturnStatement *)): Likewise. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime c52e28b7. * libdruntime/Makefile.am (DRUNTIME_DSOURCES_OPENBSD): Add core/sys/openbsd/pwd.d. * libdruntime/Makefile.in: Regenerate. * src/MERGE: Merge upstream phobos 99e9c1b77. * testsuite/libphobos.exceptions/message_with_null.d: New test. gcc/testsuite/ChangeLog: * gdc.dg/nrvo1.d: New test. --- gcc/d/d-builtins.cc | 9 + gcc/d/d-codegen.cc | 28 +- gcc/d/d-tree.h | 3 +- gcc/d/decl.cc | 52 ++-- gcc/d/dmd/MERGE | 2 +- gcc/d/dmd/VERSION | 2 +- gcc/d/dmd/aggregate.d | 6 +- gcc/d/dmd/aliasthis.d | 4 +- gcc/d/dmd/arrayop.d | 10 +- gcc/d/dmd/arraytypes.d | 1 - gcc/d/dmd/arraytypes.h | 1 - gcc/d/dmd/blockexit.d | 5 +- gcc/d/dmd/clone.d | 38 ++- gcc/d/dmd/constfold.d | 135 ++++---- gcc/d/dmd/cparse.d | 70 +++-- gcc/d/dmd/ctfeexpr.d | 164 +++++----- gcc/d/dmd/ctorflow.d | 1 - gcc/d/dmd/dcast.d | 1 - gcc/d/dmd/declaration.d | 115 +++---- gcc/d/dmd/declaration.h | 71 +++-- gcc/d/dmd/denum.d | 5 +- gcc/d/dmd/dinterpret.d | 150 ++++----- gcc/d/dmd/dmangle.d | 6 - gcc/d/dmd/dmodule.d | 2 +- gcc/d/dmd/dscope.d | 25 ++ gcc/d/dmd/dsymbol.d | 17 +- gcc/d/dmd/dsymbol.h | 2 +- gcc/d/dmd/dsymbolsem.d | 96 +++--- gcc/d/dmd/dtemplate.d | 26 +- gcc/d/dmd/dtoh.d | 83 ++++- gcc/d/dmd/escape.d | 77 +++-- gcc/d/dmd/expression.d | 20 +- gcc/d/dmd/expressionsem.d | 161 +++++----- gcc/d/dmd/file_manager.d | 35 +-- gcc/d/dmd/foreachvar.d | 1 - gcc/d/dmd/func.d | 290 +++++++++++++----- gcc/d/dmd/globals.d | 5 + gcc/d/dmd/globals.h | 4 + gcc/d/dmd/hdrgen.d | 25 +- gcc/d/dmd/importc.d | 39 ++- gcc/d/dmd/init.h | 2 +- gcc/d/dmd/initsem.d | 5 +- gcc/d/dmd/lexer.d | 155 +++++----- gcc/d/dmd/mtype.d | 210 +++---------- gcc/d/dmd/nogc.d | 4 +- gcc/d/dmd/ob.d | 9 +- gcc/d/dmd/opover.d | 14 +- gcc/d/dmd/optimize.d | 48 ++- gcc/d/dmd/parse.d | 2 +- gcc/d/dmd/printast.d | 2 - gcc/d/dmd/root/aav.d | 8 +- gcc/d/dmd/root/array.h | 1 - gcc/d/dmd/root/bitarray.d | 3 - gcc/d/dmd/root/file.d | 31 +- gcc/d/dmd/root/stringtable.d | 2 +- gcc/d/dmd/sapply.d | 1 - gcc/d/dmd/semantic3.d | 35 ++- gcc/d/dmd/statement.d | 3 + gcc/d/dmd/statementsem.d | 39 +-- gcc/d/dmd/tokens.d | 58 +++- gcc/d/dmd/tokens.h | 1 + gcc/d/dmd/traits.d | 23 +- gcc/d/dmd/typesem.d | 19 +- gcc/d/dmd/utils.d | 2 +- gcc/d/expr.cc | 2 +- gcc/d/modules.cc | 2 +- gcc/d/toir.cc | 2 +- gcc/testsuite/gdc.dg/nrvo1.d | 27 ++ gcc/testsuite/gdc.test/compilable/Test16206.d | 2 +- .../gdc.test/compilable/aliasassign.d | 1 - gcc/testsuite/gdc.test/compilable/art4769.d | 1 - gcc/testsuite/gdc.test/compilable/b21285.d | 34 ++ gcc/testsuite/gdc.test/compilable/b33.d | 1 - gcc/testsuite/gdc.test/compilable/b6395.d | 1 - gcc/testsuite/gdc.test/compilable/b9490.d | 1 - .../gdc.test/compilable/betterCarray.d | 3 +- .../gdc.test/compilable/betterCswitch.d | 3 +- gcc/testsuite/gdc.test/compilable/ccompile.d | 2 - gcc/testsuite/gdc.test/compilable/cdcmp.d | 1 - gcc/testsuite/gdc.test/compilable/const.d | 2 - gcc/testsuite/gdc.test/compilable/ddoc1.d | 2 +- gcc/testsuite/gdc.test/compilable/ddoc11.d | 5 - gcc/testsuite/gdc.test/compilable/ddoc12706.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc12745.d | 2 +- gcc/testsuite/gdc.test/compilable/ddoc13.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc14.d | 3 - gcc/testsuite/gdc.test/compilable/ddoc2.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc2273.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc3.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc5.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc6.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc6491.d | 2 - gcc/testsuite/gdc.test/compilable/ddoc7.d | 1 - gcc/testsuite/gdc.test/compilable/ddoc9369.d | 3 - gcc/testsuite/gdc.test/compilable/ddoc9475.d | 1 - .../compilable/dtoh_AnonDeclaration.d | 1 - .../compilable/dtoh_ClassDeclaration.d | 8 +- .../compilable/dtoh_StructDeclaration.d | 6 +- .../gdc.test/compilable/dtoh_VarDeclaration.d | 2 +- .../gdc.test/compilable/dtoh_extern_type.d | 2 +- .../gdc.test/compilable/dtoh_ignored.d | 2 +- .../gdc.test/compilable/dtoh_mangling.d | 118 +++++++ .../gdc.test/compilable/extra-files/header1.d | 3 +- gcc/testsuite/gdc.test/compilable/fail137.d | 1 - gcc/testsuite/gdc.test/compilable/fix17686.d | 1 - gcc/testsuite/gdc.test/compilable/fix20416.d | 1 - gcc/testsuite/gdc.test/compilable/fix21647.d | 1 - gcc/testsuite/gdc.test/compilable/fix22291.d | 105 ++++++- gcc/testsuite/gdc.test/compilable/ice20092.d | 1 - .../gdc.test/compilable/imports/art4769a.d | 1 - .../gdc.test/compilable/imports/art4769b.d | 1 - .../gdc.test/compilable/imports/b33a.d | 3 - .../gdc.test/compilable/imports/b3682.d | 1 - .../gdc.test/compilable/imports/defaa.d | 3 - .../gdc.test/compilable/imports/defab.d | 1 - .../gdc.test/compilable/imports/imp16080.d | 1 - .../imports/plainpackage/plainmodule.d | 1 - .../compilable/imports/test11563std_traits.d | 1 - .../gdc.test/compilable/imports/test16709c.d | 1 - .../gdc.test/compilable/imports/test16709d.d | 1 - .../gdc.test/compilable/imports/test4003a.d | 1 - .../gdc.test/compilable/imports/test50a.d | 1 - .../gdc.test/compilable/imports/test55a.d | 1 - .../gdc.test/compilable/imports/test62a.d | 2 - .../gdc.test/compilable/imports/test63a.d | 1 - .../gdc.test/compilable/imports/test67a.d | 2 - .../gdc.test/compilable/imports/test68a.d | 1 - .../compilable/imports/test9276decl.d | 1 - .../compilable/imports/test9276expr.d | 1 - .../compilable/imports/test9276parser.d | 1 - .../gdc.test/compilable/imports/test9276sem.d | 1 - .../compilable/imports/test9276type.d | 1 - .../compilable/imports/test9276util.d | 1 - .../compilable/imports/test9276visitors.d | 1 - .../gdc.test/compilable/imports/wax16798.d | 1 - .../gdc.test/compilable/isreturnonstack.d | 1 - .../gdc.test/compilable/issue15478.d | 1 - .../gdc.test/compilable/issue21813b.d | 1 - gcc/testsuite/gdc.test/compilable/json.d | 2 +- gcc/testsuite/gdc.test/compilable/line.d | 2 - gcc/testsuite/gdc.test/compilable/mixintype.d | 1 - gcc/testsuite/gdc.test/compilable/test10073.d | 1 - gcc/testsuite/gdc.test/compilable/test1238.d | 1 - gcc/testsuite/gdc.test/compilable/test12527.d | 1 - gcc/testsuite/gdc.test/compilable/test13193.d | 1 - gcc/testsuite/gdc.test/compilable/test13194.d | 1 - gcc/testsuite/gdc.test/compilable/test13600.d | 1 - gcc/testsuite/gdc.test/compilable/test13858.d | 1 - gcc/testsuite/gdc.test/compilable/test15019.d | 1 - .../gdc.test/compilable/test15389_y.d | 1 - gcc/testsuite/gdc.test/compilable/test15464.d | 2 - gcc/testsuite/gdc.test/compilable/test15565.d | 1 - gcc/testsuite/gdc.test/compilable/test15578.d | 1 - gcc/testsuite/gdc.test/compilable/test15762.d | 1 - gcc/testsuite/gdc.test/compilable/test15898.d | 1 - gcc/testsuite/gdc.test/compilable/test16037.d | 2 - gcc/testsuite/gdc.test/compilable/test16080.d | 1 - gcc/testsuite/gdc.test/compilable/test16225.d | 1 - gcc/testsuite/gdc.test/compilable/test16798.d | 1 - gcc/testsuite/gdc.test/compilable/test17057.d | 1 - gcc/testsuite/gdc.test/compilable/test17421.d | 1 - gcc/testsuite/gdc.test/compilable/test17468.d | 1 - gcc/testsuite/gdc.test/compilable/test17512.d | 1 - gcc/testsuite/gdc.test/compilable/test17942.d | 1 - gcc/testsuite/gdc.test/compilable/test18020.d | 2 +- gcc/testsuite/gdc.test/compilable/test18584.d | 1 - gcc/testsuite/gdc.test/compilable/test18936.d | 1 - gcc/testsuite/gdc.test/compilable/test19203.d | 1 - gcc/testsuite/gdc.test/compilable/test19227.d | 1 - gcc/testsuite/gdc.test/compilable/test20596.d | 2 - gcc/testsuite/gdc.test/compilable/test20653.d | 1 - gcc/testsuite/gdc.test/compilable/test20717.d | 17 + gcc/testsuite/gdc.test/compilable/test20906.d | 1 - gcc/testsuite/gdc.test/compilable/test20990.d | 1 - gcc/testsuite/gdc.test/compilable/test22639.d | 26 ++ gcc/testsuite/gdc.test/compilable/test22665.d | 2 - gcc/testsuite/gdc.test/compilable/test22825.d | 4 + gcc/testsuite/gdc.test/compilable/test22859.d | 40 +++ gcc/testsuite/gdc.test/compilable/test22860.d | 62 ++++ gcc/testsuite/gdc.test/compilable/test22919.d | 17 + gcc/testsuite/gdc.test/compilable/test3775.d | 2 - gcc/testsuite/gdc.test/compilable/test4003.d | 1 - gcc/testsuite/gdc.test/compilable/test4375.d | 1 - gcc/testsuite/gdc.test/compilable/test50.d | 2 - gcc/testsuite/gdc.test/compilable/test5227.d | 2 - gcc/testsuite/gdc.test/compilable/test602.d | 1 - gcc/testsuite/gdc.test/compilable/test6089.d | 1 - gcc/testsuite/gdc.test/compilable/test63.d | 1 - gcc/testsuite/gdc.test/compilable/test6395.d | 1 - gcc/testsuite/gdc.test/compilable/test66.d | 1 - gcc/testsuite/gdc.test/compilable/test67.d | 1 - gcc/testsuite/gdc.test/compilable/test68.d | 1 - gcc/testsuite/gdc.test/compilable/test7399.d | 1 - gcc/testsuite/gdc.test/compilable/test8296.d | 2 +- gcc/testsuite/gdc.test/compilable/test8922b.d | 1 - gcc/testsuite/gdc.test/compilable/test8922d.d | 1 - gcc/testsuite/gdc.test/compilable/test9057.d | 2 - gcc/testsuite/gdc.test/compilable/test9436.d | 1 - .../gdc.test/compilable/testAliasLookup.d | 1 - .../gdc.test/compilable/testInference.d | 1 - .../gdc.test/compilable/testprofile.d | 1 - .../gdc.test/compilable/testsctreturn.d | 1 - .../gdc.test/compilable/typeid_name.d | 1 - gcc/testsuite/gdc.test/compilable/vcg-ast.d | 1 - gcc/testsuite/gdc.test/compilable/version.d | 2 +- .../gdc.test/fail_compilation/bug5.d | 1 - .../gdc.test/fail_compilation/bug5b.d | 1 - .../gdc.test/fail_compilation/bug9631.d | 1 - .../gdc.test/fail_compilation/circ10280.d | 1 - .../gdc.test/fail_compilation/ctfe11467.d | 1 - .../gdc.test/fail_compilation/dephexstrings.d | 1 - .../fail_compilation/deprecated6760.d | 1 - .../gdc.test/fail_compilation/diag12640.d | 1 - .../gdc.test/fail_compilation/diag14145.d | 2 - .../gdc.test/fail_compilation/diag16271.d | 1 - .../gdc.test/fail_compilation/diag1730.d | 1 - .../gdc.test/fail_compilation/diag18574.d | 1 - .../gdc.test/fail_compilation/diag8510.d | 1 - .../gdc.test/fail_compilation/dip25.d | 4 +- .../gdc.test/fail_compilation/fail10905.d | 1 - .../gdc.test/fail_compilation/fail11163.d | 1 - .../gdc.test/fail_compilation/fail118.d | 28 +- .../gdc.test/fail_compilation/fail12.d | 1 - .../gdc.test/fail_compilation/fail131.d | 2 +- .../gdc.test/fail_compilation/fail13902.d | 42 +-- .../gdc.test/fail_compilation/fail14486.d | 36 ++- .../gdc.test/fail_compilation/fail15.d | 2 - .../gdc.test/fail_compilation/fail15691.d | 2 - .../gdc.test/fail_compilation/fail16.d | 1 - .../gdc.test/fail_compilation/fail160.d | 1 - .../gdc.test/fail_compilation/fail16001.d | 1 - .../gdc.test/fail_compilation/fail16600.d | 2 - .../gdc.test/fail_compilation/fail17.d | 2 - .../gdc.test/fail_compilation/fail17275.d | 1 - .../gdc.test/fail_compilation/fail17419.d | 1 - .../gdc.test/fail_compilation/fail17421.d | 1 - .../gdc.test/fail_compilation/fail17842.d | 2 - .../gdc.test/fail_compilation/fail17906.d | 3 +- .../gdc.test/fail_compilation/fail17927.d | 5 +- .../gdc.test/fail_compilation/fail19441.d | 1 - .../gdc.test/fail_compilation/fail19744.d | 2 +- .../gdc.test/fail_compilation/fail19898a.d | 1 - .../gdc.test/fail_compilation/fail19898b.d | 1 - .../gdc.test/fail_compilation/fail19922.d | 1 - .../gdc.test/fail_compilation/fail19923.d | 1 - .../gdc.test/fail_compilation/fail20084.d | 2 +- .../gdc.test/fail_compilation/fail201.d | 1 - .../gdc.test/fail_compilation/fail202.d | 1 - .../gdc.test/fail_compilation/fail203.d | 1 - .../gdc.test/fail_compilation/fail204.d | 1 - .../gdc.test/fail_compilation/fail20448.d | 2 +- .../gdc.test/fail_compilation/fail205.d | 1 - .../gdc.test/fail_compilation/fail206.d | 1 - .../gdc.test/fail_compilation/fail20800.d | 1 - .../gdc.test/fail_compilation/fail217.d | 1 - .../gdc.test/fail_compilation/fail21868b.d | 4 +- .../gdc.test/fail_compilation/fail22118.d | 1 - .../gdc.test/fail_compilation/fail22825a.d | 11 + .../gdc.test/fail_compilation/fail22825b.d | 13 + .../gdc.test/fail_compilation/fail2361.d | 3 +- .../gdc.test/fail_compilation/fail249.d | 2 +- .../gdc.test/fail_compilation/fail258.d | 1 - .../gdc.test/fail_compilation/fail259.d | 1 - .../gdc.test/fail_compilation/fail261.d | 3 +- .../gdc.test/fail_compilation/fail346.d | 1 - .../gdc.test/fail_compilation/fail359.d | 4 +- .../gdc.test/fail_compilation/fail3895.d | 1 - .../gdc.test/fail_compilation/fail4269a.d | 1 - .../gdc.test/fail_compilation/fail4269b.d | 1 - .../gdc.test/fail_compilation/fail4269c.d | 1 - .../gdc.test/fail_compilation/fail4375a.d | 1 - .../gdc.test/fail_compilation/fail4375b.d | 1 - .../gdc.test/fail_compilation/fail4375c.d | 1 - .../gdc.test/fail_compilation/fail4375d.d | 1 - .../gdc.test/fail_compilation/fail4375e.d | 1 - .../gdc.test/fail_compilation/fail4375f.d | 1 - .../gdc.test/fail_compilation/fail4375g.d | 1 - .../gdc.test/fail_compilation/fail4375h.d | 1 - .../gdc.test/fail_compilation/fail4375i.d | 1 - .../gdc.test/fail_compilation/fail4375j.d | 1 - .../gdc.test/fail_compilation/fail4375k.d | 1 - .../gdc.test/fail_compilation/fail4375l.d | 1 - .../gdc.test/fail_compilation/fail4375m.d | 1 - .../gdc.test/fail_compilation/fail4375o.d | 1 - .../gdc.test/fail_compilation/fail4375p.d | 1 - .../gdc.test/fail_compilation/fail4375q.d | 1 - .../gdc.test/fail_compilation/fail4375r.d | 1 - .../gdc.test/fail_compilation/fail4375s.d | 1 - .../gdc.test/fail_compilation/fail4375t.d | 1 - .../gdc.test/fail_compilation/fail4375u.d | 1 - .../gdc.test/fail_compilation/fail4375v.d | 1 - .../gdc.test/fail_compilation/fail4375w.d | 1 - .../gdc.test/fail_compilation/fail4375x.d | 1 - .../gdc.test/fail_compilation/fail4375y.d | 1 - .../gdc.test/fail_compilation/fail44.d | 1 - .../gdc.test/fail_compilation/fail47.d | 1 - .../gdc.test/fail_compilation/fail58.d | 1 - .../gdc.test/fail_compilation/fail60.d | 1 - .../gdc.test/fail_compilation/fail6107.d | 1 - .../gdc.test/fail_compilation/fail7178.d | 1 - .../gdc.test/fail_compilation/fail72.d | 1 - .../gdc.test/fail_compilation/fail7234.d | 1 - .../gdc.test/fail_compilation/fail73.d | 1 - .../gdc.test/fail_compilation/fail7369.d | 1 - .../gdc.test/fail_compilation/fail7424c.d | 1 - .../gdc.test/fail_compilation/fail7424d.d | 1 - .../gdc.test/fail_compilation/fail7424e.d | 1 - .../gdc.test/fail_compilation/fail7424f.d | 1 - .../gdc.test/fail_compilation/fail7424g.d | 1 - .../gdc.test/fail_compilation/fail7424h.d | 1 - .../gdc.test/fail_compilation/fail7424i.d | 1 - .../gdc.test/fail_compilation/fail7524a.d | 3 +- .../gdc.test/fail_compilation/fail7524b.d | 3 +- .../gdc.test/fail_compilation/fail77.d | 1 - .../gdc.test/fail_compilation/fail78.d | 1 - .../gdc.test/fail_compilation/fail7851.d | 1 - .../gdc.test/fail_compilation/fail7859.d | 1 - .../gdc.test/fail_compilation/fail7861.d | 1 - .../gdc.test/fail_compilation/fail7862.d | 1 - .../gdc.test/fail_compilation/fail79.d | 1 - .../gdc.test/fail_compilation/fail8009.d | 1 - .../gdc.test/fail_compilation/fail8179b.d | 1 - .../gdc.test/fail_compilation/fail8373.d | 1 - .../gdc.test/fail_compilation/fail9199.d | 1 - .../gdc.test/fail_compilation/fail92.d | 2 +- .../gdc.test/fail_compilation/fail95.d | 1 - .../gdc.test/fail_compilation/fail9665a.d | 1 - .../gdc.test/fail_compilation/fail9735.d | 1 - .../gdc.test/fail_compilation/fail_arrayop2.d | 4 +- .../gdc.test/fail_compilation/failcontracts.d | 1 - .../gdc.test/fail_compilation/faildeleteaa.d | 3 +- .../gdc.test/fail_compilation/failsafec.d | 1 - .../gdc.test/fail_compilation/fix18575.d | 9 +- .../gdc.test/fail_compilation/fix21585.d | 1 - .../gdc.test/fail_compilation/fix5212.d | 1 - .../gdc.test/fail_compilation/fob1.d | 1 + .../gdc.test/fail_compilation/fob2.d | 17 + .../gdc.test/fail_compilation/format.d | 1 - .../gdc.test/fail_compilation/goto1.d | 1 - .../gdc.test/fail_compilation/goto3.d | 2 - .../gdc.test/fail_compilation/ice10283.d | 1 - .../gdc.test/fail_compilation/ice10727a.d | 2 - .../gdc.test/fail_compilation/ice10727b.d | 2 - .../gdc.test/fail_compilation/ice11968.d | 3 +- .../gdc.test/fail_compilation/ice13027.d | 1 - .../gdc.test/fail_compilation/ice6538.d | 1 - .../gdc.test/fail_compilation/ice9254a.d | 2 +- .../gdc.test/fail_compilation/ice9254b.d | 2 +- .../gdc.test/fail_compilation/ice9254c.d | 2 +- .../fail_compilation/imports/a10528.d | 1 - .../fail_compilation/imports/a11850.d | 2 - .../fail_compilation/imports/a14235.d | 2 +- .../fail_compilation/imports/diag10141b.d | 1 - .../imports/diag9210stdcomplex.d | 1 - .../fail_compilation/imports/test18480a.d | 1 - .../fail_compilation/imports/test21164a.d | 1 - .../fail_compilation/imports/test21164b.d | 1 - .../fail_compilation/imports/test21164c.d | 1 - .../fail_compilation/imports/test21164d.d | 1 - .../fail_compilation/imports/test64a.d | 1 - .../gdc.test/fail_compilation/issue22820.d | 1 - .../gdc.test/fail_compilation/issue22826.d | 3 +- .../gdc.test/fail_compilation/lexer1.d | 4 +- .../gdc.test/fail_compilation/lexer4.d | 6 +- .../gdc.test/fail_compilation/mangle2.d | 1 - .../gdc.test/fail_compilation/no_TypeInfo.d | 1 - .../gdc.test/fail_compilation/nogc1.d | 9 +- .../gdc.test/fail_compilation/opapplyscope.d | 1 - .../gdc.test/fail_compilation/pragmainline.d | 1 - .../gdc.test/fail_compilation/pragmas.d | 2 - .../fail_compilation/reserved_version.d | 2 + .../reserved_version_switch.d | 3 + .../gdc.test/fail_compilation/retscope2.d | 1 - .../gdc.test/fail_compilation/retscope3.d | 41 --- .../gdc.test/fail_compilation/retscope5.d | 1 - .../gdc.test/fail_compilation/retscope6.d | 20 ++ .../gdc.test/fail_compilation/shared.d | 2 +- .../gdc.test/fail_compilation/switches.d | 2 - .../gdc.test/fail_compilation/test1021.d | 2 - .../gdc.test/fail_compilation/test11047.d | 2 - .../gdc.test/fail_compilation/test11176.d | 1 - .../gdc.test/fail_compilation/test13536.d | 1 - .../gdc.test/fail_compilation/test13537.d | 1 - .../gdc.test/fail_compilation/test14496.d | 3 - .../gdc.test/fail_compilation/test15399.d | 1 - .../gdc.test/fail_compilation/test15544.d | 2 - .../gdc.test/fail_compilation/test15660.d | 1 - .../gdc.test/fail_compilation/test15672.d | 2 - .../gdc.test/fail_compilation/test15703.d | 1 - .../gdc.test/fail_compilation/test15704.d | 1 - .../gdc.test/fail_compilation/test15989.d | 1 - .../gdc.test/fail_compilation/test16188.d | 1 - .../gdc.test/fail_compilation/test16193.d | 1 - .../gdc.test/fail_compilation/test16195.d | 3 +- .../gdc.test/fail_compilation/test16381.d | 1 - .../gdc.test/fail_compilation/test16589.d | 12 +- .../gdc.test/fail_compilation/test17284.d | 1 - .../gdc.test/fail_compilation/test17425.d | 1 - .../gdc.test/fail_compilation/test17450.d | 4 +- .../gdc.test/fail_compilation/test18282.d | 1 - .../gdc.test/fail_compilation/test18484.d | 1 - .../gdc.test/fail_compilation/test18644.d | 2 - .../gdc.test/fail_compilation/test18708.d | 2 - .../gdc.test/fail_compilation/test21353.d | 1 - .../gdc.test/fail_compilation/test21927.d | 4 +- .../gdc.test/fail_compilation/test21939.d | 3 +- .../gdc.test/fail_compilation/test22145.d | 1 - .../gdc.test/fail_compilation/test22541.d | 2 +- .../gdc.test/fail_compilation/test22840.d | 26 ++ .../gdc.test/fail_compilation/test22910.d | 19 ++ .../gdc.test/fail_compilation/test3818.d | 2 - .../gdc.test/fail_compilation/test64.d | 1 - .../gdc.test/fail_compilation/testpull1810.d | 1 - .../fail_compilation/testscopestatic.d | 1 - .../gdc.test/fail_compilation/varargsstc.d | 1 - .../gdc.test/fail_compilation/warn12809.d | 2 - gcc/testsuite/gdc.test/runnable/betterc.d | 1 - gcc/testsuite/gdc.test/runnable/bug846.d | 1 - gcc/testsuite/gdc.test/runnable/fix22372.d | 1 - gcc/testsuite/gdc.test/runnable/functype.d | 1 - .../gdc.test/runnable/imports/a18a.d | 1 - .../gdc.test/runnable/imports/a21a.d | 1 - .../gdc.test/runnable/imports/bug846.d | 1 - .../gdc.test/runnable/imports/c22a.d | 1 - .../gdc.test/runnable/imports/c22b.d | 1 - .../gdc.test/runnable/imports/link7745b.d | 2 - gcc/testsuite/gdc.test/runnable/imports/m1a.d | 1 - .../gdc.test/runnable/imports/template2962a.d | 1 - .../gdc.test/runnable/imports/test10441b.d | 1 - .../gdc.test/runnable/imports/test10441c.d | 1 - .../gdc.test/runnable/imports/test10a.d | 1 - .../gdc.test/runnable/imports/test11039b.d | 1 - .../gdc.test/runnable/imports/test13a.d | 1 - .../gdc.test/runnable/imports/test27a.d | 1 - .../gdc.test/runnable/imports/test29a.d | 1 - .../gdc.test/runnable/imports/test31a.d | 1 - .../gdc.test/runnable/imports/test32a.d | 1 - .../gdc.test/runnable/imports/test35a.d | 1 - .../gdc.test/runnable/imports/test40a.d | 1 - .../gdc.test/runnable/imports/test41a.d | 1 - .../gdc.test/runnable/imports/test45a.d | 1 - .../gdc.test/runnable/imports/test45b.d | 1 - .../gdc.test/runnable/imports/test46b.d | 1 - .../gdc.test/runnable/imports/test46c.d | 1 - .../gdc.test/runnable/imports/test49a.d | 1 - .../gdc.test/runnable/imports/test57a.d | 2 - .../gdc.test/runnable/imports/test57b.d | 1 - .../gdc.test/runnable/imports/test58a.d | 1 - .../gdc.test/runnable/imports/testminitAA.d | 1 - .../gdc.test/runnable/imports/testminitBB.d | 1 - .../gdc.test/runnable/imports/testmod1b.d | 1 - .../gdc.test/runnable/imports/tlsa.d | 2 - gcc/testsuite/gdc.test/runnable/manboy.d | 1 - gcc/testsuite/gdc.test/runnable/nrvo.d | 30 ++ gcc/testsuite/gdc.test/runnable/pi.d | 3 - .../gdc.test/runnable/template2962.d | 1 - gcc/testsuite/gdc.test/runnable/test10441.d | 1 - gcc/testsuite/gdc.test/runnable/test10942.d | 1 - gcc/testsuite/gdc.test/runnable/test11.d | 2 - gcc/testsuite/gdc.test/runnable/test11039.d | 1 - gcc/testsuite/gdc.test/runnable/test12.d | 1 - gcc/testsuite/gdc.test/runnable/test15568.d | 1 - gcc/testsuite/gdc.test/runnable/test16140.d | 1 - gcc/testsuite/gdc.test/runnable/test17.d | 1 - gcc/testsuite/gdc.test/runnable/test17246.d | 1 - gcc/testsuite/gdc.test/runnable/test19735.d | 1 - gcc/testsuite/gdc.test/runnable/test20036.d | 1 - gcc/testsuite/gdc.test/runnable/test20565.d | 1 - gcc/testsuite/gdc.test/runnable/test21.d | 1 - gcc/testsuite/gdc.test/runnable/test22175.d | 32 ++ gcc/testsuite/gdc.test/runnable/test22945.d | 38 +++ gcc/testsuite/gdc.test/runnable/test27.d | 1 - gcc/testsuite/gdc.test/runnable/test28.d | 1 - gcc/testsuite/gdc.test/runnable/test3.d | 1 - gcc/testsuite/gdc.test/runnable/test30.d | 1 - gcc/testsuite/gdc.test/runnable/test32.d | 1 - gcc/testsuite/gdc.test/runnable/test34.d | 2 - gcc/testsuite/gdc.test/runnable/test40.d | 1 - gcc/testsuite/gdc.test/runnable/test41.d | 1 - gcc/testsuite/gdc.test/runnable/test57.d | 1 - gcc/testsuite/gdc.test/runnable/test7932.d | 1 - gcc/testsuite/gdc.test/runnable/test9495.d | 2 +- gcc/testsuite/gdc.test/runnable/testmain.d | 1 - gcc/testsuite/gdc.test/runnable/testmod2.d | 1 - gcc/testsuite/gdc.test/runnable/testscope2.d | 6 +- gcc/testsuite/gdc.test/runnable/testthread2.d | 1 - gcc/testsuite/gdc.test/runnable/tls.d | 1 - gcc/testsuite/gdc.test/runnable/tls_dup.d | 1 - gcc/testsuite/gdc.test/runnable/xtest55.d | 1 - .../runnable_cxx/extra-files/cabi2.cpp | 1 - .../gdc.test/runnable_cxx/test6716.d | 2 +- libphobos/libdruntime/MERGE | 2 +- libphobos/libdruntime/Makefile.am | 14 +- libphobos/libdruntime/Makefile.in | 22 +- libphobos/libdruntime/core/atomic.d | 11 +- libphobos/libdruntime/core/demangle.d | 2 +- .../libdruntime/core/internal/array/casting.d | 59 +++- .../core/internal/gc/impl/conservative/gc.d | 11 +- libphobos/libdruntime/core/stdc/stdlib.d | 4 +- libphobos/libdruntime/core/stdcpp/string.d | 4 +- libphobos/libdruntime/core/sys/openbsd/pwd.d | 19 ++ libphobos/libdruntime/core/thread/context.d | 2 +- libphobos/libdruntime/rt/dmain2.d | 2 +- libphobos/src/MERGE | 2 +- libphobos/src/std/conv.d | 24 +- libphobos/src/std/datetime/systime.d | 29 +- libphobos/src/std/experimental/logger/core.d | 8 +- .../src/std/experimental/logger/filelogger.d | 2 +- .../src/std/experimental/logger/multilogger.d | 2 +- libphobos/src/std/file.d | 8 +- libphobos/src/std/format/internal/write.d | 147 ++++++++- libphobos/src/std/format/package.d | 2 +- libphobos/src/std/format/read.d | 2 +- libphobos/src/std/format/write.d | 2 +- libphobos/src/std/functional.d | 12 +- libphobos/src/std/json.d | 2 +- libphobos/src/std/outbuffer.d | 4 +- libphobos/src/std/parallelism.d | 5 + libphobos/src/std/process.d | 11 +- libphobos/src/std/socket.d | 4 +- libphobos/src/std/stdio.d | 22 +- libphobos/src/std/sumtype.d | 12 +- libphobos/src/std/typecons.d | 169 ++++++++-- libphobos/src/std/uni/package.d | 44 +-- libphobos/src/std/windows/charset.d | 15 +- libphobos/src/std/windows/syserror.d | 97 ++++-- .../libphobos.exceptions/message_with_null.d | 8 + 527 files changed, 2728 insertions(+), 1913 deletions(-) create mode 100644 gcc/testsuite/gdc.dg/nrvo1.d create mode 100644 gcc/testsuite/gdc.test/compilable/dtoh_mangling.d create mode 100644 gcc/testsuite/gdc.test/compilable/test20717.d create mode 100644 gcc/testsuite/gdc.test/compilable/test22639.d create mode 100644 gcc/testsuite/gdc.test/compilable/test22825.d create mode 100644 gcc/testsuite/gdc.test/compilable/test22859.d create mode 100644 gcc/testsuite/gdc.test/compilable/test22860.d create mode 100644 gcc/testsuite/gdc.test/compilable/test22919.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/fail22825a.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/fail22825b.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/test22840.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/test22910.d create mode 100644 gcc/testsuite/gdc.test/runnable/nrvo.d create mode 100644 gcc/testsuite/gdc.test/runnable/test22175.d create mode 100644 gcc/testsuite/gdc.test/runnable/test22945.d create mode 100644 libphobos/libdruntime/core/sys/openbsd/pwd.d create mode 100644 libphobos/testsuite/libphobos.exceptions/message_with_null.d