diff --git a/gcc/d/Make-lang.in b/gcc/d/Make-lang.in
index 06b8c893928..6c90657d65f 100644
--- a/gcc/d/Make-lang.in
+++ b/gcc/d/Make-lang.in
@@ -93,7 +93,6 @@ D_FRONTEND_OBJS = \
 	d/common-outbuffer.o \
 	d/common-string.o \
 	d/compiler.o \
-	d/complex.o \
 	d/cond.o \
 	d/constfold.o \
 	d/cparse.o \
@@ -157,6 +156,7 @@ D_FRONTEND_OBJS = \
 	d/root-aav.o \
 	d/root-array.o \
 	d/root-bitarray.o \
+	d/root-complex.o \
 	d/root-ctfloat.o \
 	d/root-file.o \
 	d/root-filename.o \
@@ -170,6 +170,7 @@ D_FRONTEND_OBJS = \
 	d/root-speller.o \
 	d/root-string.o \
 	d/root-stringtable.o \
+	d/root-utf.o \
 	d/safe.o \
 	d/sapply.o \
 	d/semantic2.o \
@@ -188,7 +189,6 @@ D_FRONTEND_OBJS = \
 	d/transitivevisitor.o \
 	d/typesem.o \
 	d/typinf.o \
-	d/utf.o \
 	d/utils.o \
 	d/visitor.o
 
diff --git a/gcc/d/dmd/MERGE b/gcc/d/dmd/MERGE
index b42576c2ce6..5915706af11 100644
--- a/gcc/d/dmd/MERGE
+++ b/gcc/d/dmd/MERGE
@@ -1,4 +1,4 @@
-ad8412530e607ffebec36f2dbdff1a6f2798faf7
+001bfd97b0e75423970260dac54f453be9b57f4c
 
 The first line of this file holds the git revision number of the last
 merge done from the dlang/dmd repository.
diff --git a/gcc/d/dmd/README.md b/gcc/d/dmd/README.md
index 3cb7e127bb6..6b91e22e3e5 100644
--- a/gcc/d/dmd/README.md
+++ b/gcc/d/dmd/README.md
@@ -2,12 +2,12 @@
 
 This is the source code to the DMD compiler
 for the D Programming Language defined in the documents at
-http://dlang.org/
+https://dlang.org/
 
 These sources are free, they are redistributable and modifiable
 under the terms of the Boost Software License, Version 1.0.
 The terms of this license are in the file boostlicense.txt,
-or see http://www.boost.org/LICENSE_1_0.txt.
+or see https://www.boost.org/LICENSE_1_0.txt.
 
 If a particular file has a different license in it, that overrides
 this license for that file.
@@ -247,12 +247,9 @@
 
 | File                                                                              | Purpose                                           |
 |-----------------------------------------------------------------------------------|---------------------------------------------------|
-| [env.d](https://github.com/dlang/dmd/blob/master/src/dmd/env.d)                   | Modify environment variables                      |
 | [console.d](https://github.com/dlang/dmd/blob/master/src/dmd/console.d)           | Print error messages in color                     |
-| [utf.d](https://github.com/dlang/dmd/blob/master/src/dmd/utf.d)                   | Encoding/decoding Unicode text                    |
 | [file_manager.d](https://github.com/dlang/dmd/blob/master/src/dmd/file_manager.d) | Keep file contents in memory                      |
 | [utils.d](https://github.com/dlang/dmd/blob/master/src/dmd/utils.d)               | Utility functions related to files and file paths |
-| [complex.d](https://github.com/dlang/dmd/blob/master/src/dmd/complex.d)           | A complex number type                             |
 
 | File                                                                            | Purpose                                                       |
 |---------------------------------------------------------------------------------|---------------------------------------------------------------|
diff --git a/gcc/d/dmd/VERSION b/gcc/d/dmd/VERSION
index 822edd4637a..0aa03f4b61a 100644
--- a/gcc/d/dmd/VERSION
+++ b/gcc/d/dmd/VERSION
@@ -1 +1 @@
-v2.098.1-beta.1
+v2.098.1
diff --git a/gcc/d/dmd/access.d b/gcc/d/dmd/access.d
index d8a65179a9e..51ef049f860 100644
--- a/gcc/d/dmd/access.d
+++ b/gcc/d/dmd/access.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/attribute.html#visibility_attributes, Visibility Attributes)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/access.d, _access.d)
  * Documentation:  https://dlang.org/phobos/dmd_access.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/access.d
diff --git a/gcc/d/dmd/aggregate.d b/gcc/d/dmd/aggregate.d
index dc772e8eeac..1add36a0299 100644
--- a/gcc/d/dmd/aggregate.d
+++ b/gcc/d/dmd/aggregate.d
@@ -4,9 +4,9 @@
  * Specification: $(LINK2 https://dlang.org/spec/struct.html, Structs, Unions),
  *                $(LINK2 https://dlang.org/spec/class.html, Class).
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/aggregate.d, _aggregate.d)
  * Documentation:  https://dlang.org/phobos/dmd_aggregate.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/aggregate.d
diff --git a/gcc/d/dmd/aggregate.h b/gcc/d/dmd/aggregate.h
index 48e5f4a8062..796144ac810 100644
--- a/gcc/d/dmd/aggregate.h
+++ b/gcc/d/dmd/aggregate.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/aggregate.h
  */
 
diff --git a/gcc/d/dmd/aliasthis.d b/gcc/d/dmd/aliasthis.d
index 80db47ded1d..458e8217409 100644
--- a/gcc/d/dmd/aliasthis.d
+++ b/gcc/d/dmd/aliasthis.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/class.html#alias-this, Alias This)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/aliasthis.d, _aliasthis.d)
  * Documentation:  https://dlang.org/phobos/dmd_aliasthis.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/aliasthis.d
diff --git a/gcc/d/dmd/aliasthis.h b/gcc/d/dmd/aliasthis.h
index de93a8e6ae4..3b67903c4d0 100644
--- a/gcc/d/dmd/aliasthis.h
+++ b/gcc/d/dmd/aliasthis.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 2009-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 2009-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/aliasthis.h
  */
 
diff --git a/gcc/d/dmd/apply.d b/gcc/d/dmd/apply.d
index ab427e885dc..75b4af1f1d8 100644
--- a/gcc/d/dmd/apply.d
+++ b/gcc/d/dmd/apply.d
@@ -1,9 +1,9 @@
 /**
  * A depth-first visitor for expressions.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/apply.d, _apply.d)
  * Documentation:  https://dlang.org/phobos/dmd_apply.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/apply.d
diff --git a/gcc/d/dmd/arrayop.d b/gcc/d/dmd/arrayop.d
index a234501075c..e82413f4c70 100644
--- a/gcc/d/dmd/arrayop.d
+++ b/gcc/d/dmd/arrayop.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/arrays.html#array-operations, Array Operations)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/arrayop.d, _arrayop.d)
  * Documentation:  https://dlang.org/phobos/dmd_arrayop.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/arrayop.d
diff --git a/gcc/d/dmd/arraytypes.d b/gcc/d/dmd/arraytypes.d
index b1f8d86a208..ffbaf95029d 100644
--- a/gcc/d/dmd/arraytypes.d
+++ b/gcc/d/dmd/arraytypes.d
@@ -1,9 +1,9 @@
 /**
  * Provide aliases for arrays of certain declarations or statements.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/arraytypes.d, _arraytypes.d)
  * Documentation:  https://dlang.org/phobos/dmd_arraytypes.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/arraytypes.d
diff --git a/gcc/d/dmd/arraytypes.h b/gcc/d/dmd/arraytypes.h
index 602d89059a0..d7dfa0baeff 100644
--- a/gcc/d/dmd/arraytypes.h
+++ b/gcc/d/dmd/arraytypes.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 2006-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 2006-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/arraytypes.h
  */
 
diff --git a/gcc/d/dmd/ast_node.d b/gcc/d/dmd/ast_node.d
index 82d62a03657..843cc023735 100644
--- a/gcc/d/dmd/ast_node.d
+++ b/gcc/d/dmd/ast_node.d
@@ -1,9 +1,9 @@
 /**
  * Defines the base class for all nodes which are part of the AST.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/ast_node.d, _ast_node.d)
  * Documentation:  https://dlang.org/phobos/dmd_ast_node.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/ast_node.d
diff --git a/gcc/d/dmd/ast_node.h b/gcc/d/dmd/ast_node.h
index 5576dd74e0d..0e04e38f728 100644
--- a/gcc/d/dmd/ast_node.h
+++ b/gcc/d/dmd/ast_node.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/ast_node.h
  */
 
diff --git a/gcc/d/dmd/astenums.d b/gcc/d/dmd/astenums.d
index f6387651e5f..3e86cfa130e 100644
--- a/gcc/d/dmd/astenums.d
+++ b/gcc/d/dmd/astenums.d
@@ -1,8 +1,8 @@
 /**
  * Defines enums common to dmd and dmd as parse library.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/astenums.d, _astenums.d)
  * Documentation:  https://dlang.org/phobos/dmd_astenums.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/astenums.d
diff --git a/gcc/d/dmd/attrib.d b/gcc/d/dmd/attrib.d
index e8704aabf73..5d44760caad 100644
--- a/gcc/d/dmd/attrib.d
+++ b/gcc/d/dmd/attrib.d
@@ -14,9 +14,9 @@
  * - Protection (`private`, `public`)
  * - Deprecated declarations (`@deprecated`)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/attrib.d, _attrib.d)
  * Documentation:  https://dlang.org/phobos/dmd_attrib.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/attrib.d
diff --git a/gcc/d/dmd/attrib.h b/gcc/d/dmd/attrib.h
index e63c80be3c6..812729b3f27 100644
--- a/gcc/d/dmd/attrib.h
+++ b/gcc/d/dmd/attrib.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/attrib.h
  */
 
diff --git a/gcc/d/dmd/blockexit.d b/gcc/d/dmd/blockexit.d
index 5945644482a..c4a95777e03 100644
--- a/gcc/d/dmd/blockexit.d
+++ b/gcc/d/dmd/blockexit.d
@@ -1,9 +1,9 @@
 /**
  * Find out in what ways control flow can exit a statement block.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/blockexit.d, _blockexit.d)
  * Documentation:  https://dlang.org/phobos/dmd_blockexit.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/blockexit.d
diff --git a/gcc/d/dmd/builtin.d b/gcc/d/dmd/builtin.d
index 2f5b6c734a6..06db97bf8f4 100644
--- a/gcc/d/dmd/builtin.d
+++ b/gcc/d/dmd/builtin.d
@@ -3,9 +3,9 @@
  *
  * Currently includes functions from `std.math`, `core.math` and `core.bitop`.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/builtin.d, _builtin.d)
  * Documentation:  https://dlang.org/phobos/dmd_builtin.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/builtin.d
diff --git a/gcc/d/dmd/canthrow.d b/gcc/d/dmd/canthrow.d
index b1877151c88..e6eb0ace2ee 100644
--- a/gcc/d/dmd/canthrow.d
+++ b/gcc/d/dmd/canthrow.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/function.html#nothrow-functions, Nothrow Functions)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/canthrow.d, _canthrow.d)
  * Documentation:  https://dlang.org/phobos/dmd_canthrow.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/canthrow.d
diff --git a/gcc/d/dmd/chkformat.d b/gcc/d/dmd/chkformat.d
index b168b4f7e0a..a3f3bc4f141 100644
--- a/gcc/d/dmd/chkformat.d
+++ b/gcc/d/dmd/chkformat.d
@@ -1,9 +1,9 @@
 /**
  * Check the arguments to `printf` and `scanf` against the `format` string.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/chkformat.d, _chkformat.d)
  * Documentation:  https://dlang.org/phobos/dmd_chkformat.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/chkformat.d
@@ -57,7 +57,7 @@ import dmd.target;
  *      `true` if errors occurred
  * References:
  * C99 7.19.6.1
- * http://www.cplusplus.com/reference/cstdio/printf/
+ * https://www.cplusplus.com/reference/cstdio/printf/
  */
 bool checkPrintfFormat(ref const Loc loc, scope const char[] format, scope Expression[] args, bool isVa_list)
 {
@@ -331,7 +331,7 @@ bool checkPrintfFormat(ref const Loc loc, scope const char[] format, scope Expre
  *      `true` if errors occurred
  * References:
  * C99 7.19.6.2
- * http://www.cplusplus.com/reference/cstdio/scanf/
+ * https://www.cplusplus.com/reference/cstdio/scanf/
  */
 bool checkScanfFormat(ref const Loc loc, scope const char[] format, scope Expression[] args, bool isVa_list)
 {
@@ -955,7 +955,7 @@ Format parseGenericFormatSpecifier(scope const char[] format,
         case 'm':
             if (useGNUExts)
             {
-                // http://www.gnu.org/software/libc/manual/html_node/Other-Output-Conversions.html
+                // https://www.gnu.org/software/libc/manual/html_node/Other-Output-Conversions.html
                 specifier = Format.GNU_m;
                 break;
             }
diff --git a/gcc/d/dmd/clone.d b/gcc/d/dmd/clone.d
index c536d25f0a3..1a143cb8c7f 100644
--- a/gcc/d/dmd/clone.d
+++ b/gcc/d/dmd/clone.d
@@ -2,9 +2,9 @@
  * Builds struct member functions if needed and not defined by the user.
  * Includes `opEquals`, `opAssign`, post blit, copy constructor and destructor.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/clone.d, _clone.d)
  * Documentation:  https://dlang.org/phobos/dmd_clone.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/clone.d
diff --git a/gcc/d/dmd/common/file.d b/gcc/d/dmd/common/file.d
index b8cde375736..e4483d5f947 100644
--- a/gcc/d/dmd/common/file.d
+++ b/gcc/d/dmd/common/file.d
@@ -4,9 +4,9 @@
  * Functions and objects dedicated to file I/O and management. TODO: Move here artifacts
  * from places such as root/ so both the frontend and the backend have access to them.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/common/file.d, common/_file.d)
  * Documentation: https://dlang.org/phobos/dmd_common_file.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/common/file.d
diff --git a/gcc/d/dmd/common/outbuffer.d b/gcc/d/dmd/common/outbuffer.d
index c5a84375aaa..e5cc43b9d12 100644
--- a/gcc/d/dmd/common/outbuffer.d
+++ b/gcc/d/dmd/common/outbuffer.d
@@ -1,9 +1,9 @@
 /**
  * An expandable buffer in which you can write text or binary data.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/outbuffer.d, root/_outbuffer.d)
  * Documentation: https://dlang.org/phobos/dmd_root_outbuffer.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/outbuffer.d
diff --git a/gcc/d/dmd/common/outbuffer.h b/gcc/d/dmd/common/outbuffer.h
index ce23436d782..fed25c0d030 100644
--- a/gcc/d/dmd/common/outbuffer.h
+++ b/gcc/d/dmd/common/outbuffer.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/common/outbuffer.h
  */
 
diff --git a/gcc/d/dmd/common/string.d b/gcc/d/dmd/common/string.d
index 026374af89d..d3bc24f2667 100644
--- a/gcc/d/dmd/common/string.d
+++ b/gcc/d/dmd/common/string.d
@@ -1,9 +1,9 @@
 /**
  * Common string functions including filename manipulation.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/common/string.d, common/_string.d)
  * Documentation: https://dlang.org/phobos/dmd_common_string.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/common/string.d
diff --git a/gcc/d/dmd/compiler.d b/gcc/d/dmd/compiler.d
index 28f9ba6fdc4..dd26d40ff39 100644
--- a/gcc/d/dmd/compiler.d
+++ b/gcc/d/dmd/compiler.d
@@ -1,9 +1,9 @@
 /**
  * Describes a back-end compiler and implements compiler-specific actions.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/compiler.d, _compiler.d)
  * Documentation:  https://dlang.org/phobos/dmd_compiler.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/compiler.d
diff --git a/gcc/d/dmd/compiler.h b/gcc/d/dmd/compiler.h
index 27e87b692a8..e8b7704b043 100644
--- a/gcc/d/dmd/compiler.h
+++ b/gcc/d/dmd/compiler.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/compiler.h
  */
 
diff --git a/gcc/d/dmd/cond.d b/gcc/d/dmd/cond.d
index abf28144c41..dee0a179574 100644
--- a/gcc/d/dmd/cond.d
+++ b/gcc/d/dmd/cond.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/version.html, Conditional Compilation)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/cond.d, _cond.d)
  * Documentation:  https://dlang.org/phobos/dmd_cond.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/cond.d
diff --git a/gcc/d/dmd/cond.h b/gcc/d/dmd/cond.h
index 4f261162ebb..d69c13e8101 100644
--- a/gcc/d/dmd/cond.h
+++ b/gcc/d/dmd/cond.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/cond.h
  */
 
diff --git a/gcc/d/dmd/constfold.d b/gcc/d/dmd/constfold.d
index 3cc358e19bf..76e1d7fbaf2 100644
--- a/gcc/d/dmd/constfold.d
+++ b/gcc/d/dmd/constfold.d
@@ -5,9 +5,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/float.html#fp_const_folding, Floating Point Constant Folding)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/constfold.d, _constfold.d)
  * Documentation:  https://dlang.org/phobos/dmd_constfold.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/constfold.d
@@ -19,7 +19,6 @@ import core.stdc.string;
 import core.stdc.stdio;
 import dmd.arraytypes;
 import dmd.astenums;
-import dmd.complex;
 import dmd.ctfeexpr;
 import dmd.declaration;
 import dmd.dstruct;
@@ -27,13 +26,14 @@ import dmd.errors;
 import dmd.expression;
 import dmd.globals;
 import dmd.mtype;
+import dmd.root.complex;
 import dmd.root.ctfloat;
 import dmd.root.port;
 import dmd.root.rmem;
+import dmd.root.utf;
 import dmd.sideeffect;
 import dmd.target;
 import dmd.tokens;
-import dmd.utf;
 
 private enum LOG = false;
 
diff --git a/gcc/d/dmd/cparse.d b/gcc/d/dmd/cparse.d
index b1532adb6a0..8d3f3b33ead 100644
--- a/gcc/d/dmd/cparse.d
+++ b/gcc/d/dmd/cparse.d
@@ -3,9 +3,9 @@
  *
  * Specification: C11
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/cparse.d, _cparse.d)
  * Documentation:  https://dlang.org/phobos/dmd_cparse.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/cparse.d
diff --git a/gcc/d/dmd/cppmangle.d b/gcc/d/dmd/cppmangle.d
index 4ad79da02f2..7cb2092b723 100644
--- a/gcc/d/dmd/cppmangle.d
+++ b/gcc/d/dmd/cppmangle.d
@@ -4,9 +4,9 @@
  * This is the POSIX side of the implementation.
  * It exports two functions to C++, `toCppMangleItanium` and `cppTypeInfoMangleItanium`.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors: Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors: Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/cppmangle.d, _cppmangle.d)
  * Documentation:  https://dlang.org/phobos/dmd_cppmangle.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/cppmangle.d
diff --git a/gcc/d/dmd/ctfe.h b/gcc/d/dmd/ctfe.h
index 242dd552b94..5979aa70e41 100644
--- a/gcc/d/dmd/ctfe.h
+++ b/gcc/d/dmd/ctfe.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/ctfe.h
  */
 
diff --git a/gcc/d/dmd/ctfeexpr.d b/gcc/d/dmd/ctfeexpr.d
index baacaa6e9be..43dce4ba6d2 100644
--- a/gcc/d/dmd/ctfeexpr.d
+++ b/gcc/d/dmd/ctfeexpr.d
@@ -1,9 +1,9 @@
 /**
  * CTFE for expressions involving pointers, slices, array concatenation etc.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/ctfeexpr.d, _ctfeexpr.d)
  * Documentation:  https://dlang.org/phobos/dmd_ctfeexpr.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/ctfeexpr.d
@@ -16,7 +16,6 @@ import core.stdc.stdlib;
 import core.stdc.string;
 import dmd.arraytypes;
 import dmd.astenums;
-import dmd.complex;
 import dmd.constfold;
 import dmd.compiler;
 import dmd.dclass;
@@ -29,6 +28,7 @@ import dmd.expression;
 import dmd.func;
 import dmd.globals;
 import dmd.mtype;
+import dmd.root.complex;
 import dmd.root.ctfloat;
 import dmd.root.port;
 import dmd.root.rmem;
@@ -1362,6 +1362,15 @@ private int ctfeRawCmp(const ref Loc loc, Expression e1, Expression e2, bool ide
         mem.xfree(used);
         return 0;
     }
+    else if (e1.op == EXP.assocArrayLiteral && e2.op == EXP.null_)
+    {
+        return e1.isAssocArrayLiteralExp.keys.dim != 0;
+    }
+    else if (e1.op == EXP.null_ && e2.op == EXP.assocArrayLiteral)
+    {
+        return e2.isAssocArrayLiteralExp.keys.dim != 0;
+    }
+
     error(loc, "CTFE internal error: bad compare of `%s` and `%s`", e1.toChars(), e2.toChars());
     assert(0);
 }
@@ -1553,7 +1562,7 @@ Expression ctfeIndex(UnionExp* pue, const ref Loc loc, Type type, Expression e1,
     {
         if (indx >= es1.len)
         {
-            error(loc, "string index %llu is out of bounds `[0 .. %zu]`", indx, es1.len);
+            error(loc, "string index %llu is out of bounds `[0 .. %llu]`", indx, cast(ulong)es1.len);
             return CTFEExp.cantexp;
         }
         emplaceExp!IntegerExp(pue, loc, es1.charAt(indx), type);
@@ -1564,7 +1573,7 @@ Expression ctfeIndex(UnionExp* pue, const ref Loc loc, Type type, Expression e1,
     {
         if (indx >= ale.elements.dim)
         {
-            error(loc, "array index %llu is out of bounds `%s[0 .. %zu]`", indx, e1.toChars(), ale.elements.dim);
+            error(loc, "array index %llu is out of bounds `%s[0 .. %llu]`", indx, e1.toChars(), cast(ulong)ale.elements.dim);
             return CTFEExp.cantexp;
         }
         Expression e = (*ale.elements)[cast(size_t)indx];
diff --git a/gcc/d/dmd/ctorflow.d b/gcc/d/dmd/ctorflow.d
index c8b61be44a5..cc251b0b29f 100644
--- a/gcc/d/dmd/ctorflow.d
+++ b/gcc/d/dmd/ctorflow.d
@@ -1,9 +1,9 @@
 /**
  * Manage flow analysis for constructors.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/ctorflow.d, _ctorflow.d)
  * Documentation:  https://dlang.org/phobos/dmd_ctorflow.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/ctorflow.d
diff --git a/gcc/d/dmd/dcast.d b/gcc/d/dmd/dcast.d
index a572a1ff6e0..4a80d17c8ed 100644
--- a/gcc/d/dmd/dcast.d
+++ b/gcc/d/dmd/dcast.d
@@ -1,9 +1,9 @@
 /**
  * Semantic analysis for cast-expressions.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dcast.d, _dcast.d)
  * Documentation:  https://dlang.org/phobos/dmd_dcast.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dcast.d
@@ -40,9 +40,9 @@ import dmd.opover;
 import dmd.root.ctfloat;
 import dmd.common.outbuffer;
 import dmd.root.rmem;
+import dmd.root.utf;
 import dmd.tokens;
 import dmd.typesem;
-import dmd.utf;
 import dmd.visitor;
 
 enum LOG = false;
diff --git a/gcc/d/dmd/dclass.d b/gcc/d/dmd/dclass.d
index 34a236ba26e..1fb477901d1 100644
--- a/gcc/d/dmd/dclass.d
+++ b/gcc/d/dmd/dclass.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/class.html, Classes)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dclass.d, _dclass.d)
  * Documentation:  https://dlang.org/phobos/dmd_dclass.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dclass.d
diff --git a/gcc/d/dmd/declaration.d b/gcc/d/dmd/declaration.d
index 18c8ca2da74..aa143d4369f 100644
--- a/gcc/d/dmd/declaration.d
+++ b/gcc/d/dmd/declaration.d
@@ -2,9 +2,9 @@
  * Miscellaneous declarations, including typedef, alias, variable declarations including the
  * implicit this declaration, type tuples, ClassInfo, ModuleInfo and various TypeInfos.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/declaration.d, _declaration.d)
  * Documentation:  https://dlang.org/phobos/dmd_declaration.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/declaration.d
diff --git a/gcc/d/dmd/declaration.h b/gcc/d/dmd/declaration.h
index 884146e1416..353d36ce43f 100644
--- a/gcc/d/dmd/declaration.h
+++ b/gcc/d/dmd/declaration.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/declaration.h
  */
 
diff --git a/gcc/d/dmd/delegatize.d b/gcc/d/dmd/delegatize.d
index 07c1bbda650..77e09bcc573 100644
--- a/gcc/d/dmd/delegatize.d
+++ b/gcc/d/dmd/delegatize.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/function.html#lazy-params, Lazy Parameters)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/delegatize.d, _delegatize.d)
  * Documentation:  https://dlang.org/phobos/dmd_delegatize.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/delegatize.d
diff --git a/gcc/d/dmd/denum.d b/gcc/d/dmd/denum.d
index 54467d8efd4..dd6dd41abad 100644
--- a/gcc/d/dmd/denum.d
+++ b/gcc/d/dmd/denum.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/enum.html, Enums)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/denum.d, _denum.d)
  * Documentation:  https://dlang.org/phobos/dmd_denum.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/denum.d
diff --git a/gcc/d/dmd/dimport.d b/gcc/d/dmd/dimport.d
index 8cd436422ee..156cce214c1 100644
--- a/gcc/d/dmd/dimport.d
+++ b/gcc/d/dmd/dimport.d
@@ -1,9 +1,9 @@
 /**
  * A `Dsymbol` representing a renamed import.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dimport.d, _dimport.d)
  * Documentation:  https://dlang.org/phobos/dmd_dimport.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dimport.d
diff --git a/gcc/d/dmd/dinterpret.d b/gcc/d/dmd/dinterpret.d
index fc5b9a8843b..fb8ed9b2605 100644
--- a/gcc/d/dmd/dinterpret.d
+++ b/gcc/d/dmd/dinterpret.d
@@ -3,9 +3,9 @@
  *
  * Specification: ($LINK2 https://dlang.org/spec/function.html#interpretation, Compile Time Function Execution (CTFE))
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dinterpret.d, _dinterpret.d)
  * Documentation:  https://dlang.org/phobos/dmd_dinterpret.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dinterpret.d
@@ -46,9 +46,9 @@ import dmd.root.array;
 import dmd.root.ctfloat;
 import dmd.root.region;
 import dmd.root.rootobject;
+import dmd.root.utf;
 import dmd.statement;
 import dmd.tokens;
-import dmd.utf;
 import dmd.visitor;
 
 /*************************************
diff --git a/gcc/d/dmd/dmacro.d b/gcc/d/dmd/dmacro.d
index 357f7bdcd9f..0e891fb3b79 100644
--- a/gcc/d/dmd/dmacro.d
+++ b/gcc/d/dmd/dmacro.d
@@ -1,9 +1,9 @@
 /**
  * Text macro processor for Ddoc.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dmacro.d, _dmacro.d)
  * Documentation:  https://dlang.org/phobos/dmd_dmacro.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dmacro.d
diff --git a/gcc/d/dmd/dmangle.d b/gcc/d/dmd/dmangle.d
index 065968025a6..78d17b2238c 100644
--- a/gcc/d/dmd/dmangle.d
+++ b/gcc/d/dmd/dmangle.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/abi.html#name_mangling, Name Mangling)
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors: Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors: Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dmangle.d, _dmangle.d)
  * Documentation:  https://dlang.org/phobos/dmd_dmangle.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dmangle.d
@@ -143,9 +143,9 @@ import dmd.common.outbuffer;
 import dmd.root.aav;
 import dmd.root.string;
 import dmd.root.stringtable;
+import dmd.root.utf;
 import dmd.target;
 import dmd.tokens;
-import dmd.utf;
 import dmd.visitor;
 
 private immutable char[TMAX] mangleChar =
diff --git a/gcc/d/dmd/dmodule.d b/gcc/d/dmd/dmodule.d
index 4e0071304e4..46e89d0f806 100644
--- a/gcc/d/dmd/dmodule.d
+++ b/gcc/d/dmd/dmodule.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/module.html, Modules)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dmodule.d, _dmodule.d)
  * Documentation:  https://dlang.org/phobos/dmd_dmodule.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dmodule.d
@@ -837,7 +837,7 @@ extern (C++) final class Module : Package
         if (buf.length >= 2)
         {
             /* Convert all non-UTF-8 formats to UTF-8.
-             * BOM : http://www.unicode.org/faq/utf_bom.html
+             * BOM : https://www.unicode.org/faq/utf_bom.html
              * 00 00 FE FF  UTF-32BE, big-endian
              * FF FE 00 00  UTF-32LE, little-endian
              * FE FF        UTF-16BE, big-endian
diff --git a/gcc/d/dmd/doc.d b/gcc/d/dmd/doc.d
index f9b765c521c..d03b5bb6398 100644
--- a/gcc/d/dmd/doc.d
+++ b/gcc/d/dmd/doc.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/ddoc.html, Documentation Generator)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/doc.d, _doc.d)
  * Documentation:  https://dlang.org/phobos/dmd_doc.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/doc.d
@@ -49,8 +49,8 @@ import dmd.common.outbuffer;
 import dmd.root.port;
 import dmd.root.rmem;
 import dmd.root.string;
+import dmd.root.utf;
 import dmd.tokens;
-import dmd.utf;
 import dmd.utils;
 import dmd.visitor;
 
diff --git a/gcc/d/dmd/doc.h b/gcc/d/dmd/doc.h
index a144417daee..8dc2d9f659c 100644
--- a/gcc/d/dmd/doc.h
+++ b/gcc/d/dmd/doc.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/doc.h
  */
 
diff --git a/gcc/d/dmd/dscope.d b/gcc/d/dmd/dscope.d
index 42c0d18b2db..07ebc27a69b 100644
--- a/gcc/d/dmd/dscope.d
+++ b/gcc/d/dmd/dscope.d
@@ -3,9 +3,9 @@
  *
  * Not to be confused with the `scope` storage class.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dscope.d, _dscope.d)
  * Documentation:  https://dlang.org/phobos/dmd_dscope.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dscope.d
diff --git a/gcc/d/dmd/dstruct.d b/gcc/d/dmd/dstruct.d
index 1f05642d301..de5f1453c9a 100644
--- a/gcc/d/dmd/dstruct.d
+++ b/gcc/d/dmd/dstruct.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/struct.html, Structs, Unions)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dstruct.d, _dstruct.d)
  * Documentation:  https://dlang.org/phobos/dmd_dstruct.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dstruct.d
diff --git a/gcc/d/dmd/dsymbol.d b/gcc/d/dmd/dsymbol.d
index e34a94ad44b..c4b3380e3aa 100644
--- a/gcc/d/dmd/dsymbol.d
+++ b/gcc/d/dmd/dsymbol.d
@@ -1,9 +1,9 @@
 /**
  * The base class for a D symbol, which can be a module, variable, function, enum, etc.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dsymbol.d, _dsymbol.d)
  * Documentation:  https://dlang.org/phobos/dmd_dsymbol.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dsymbol.d
diff --git a/gcc/d/dmd/dsymbol.h b/gcc/d/dmd/dsymbol.h
index 668b079060a..a6bd999ac0b 100644
--- a/gcc/d/dmd/dsymbol.h
+++ b/gcc/d/dmd/dsymbol.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/dsymbol.h
  */
 
diff --git a/gcc/d/dmd/dsymbolsem.d b/gcc/d/dmd/dsymbolsem.d
index 118b861d059..387dfe33098 100644
--- a/gcc/d/dmd/dsymbolsem.d
+++ b/gcc/d/dmd/dsymbolsem.d
@@ -2,9 +2,9 @@
  * Does the semantic 1 pass on the AST, which looks at symbol declarations but not initializers
  * or function bodies.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dsymbolsem.d, _dsymbolsem.d)
  * Documentation:  https://dlang.org/phobos/dmd_dsymbolsem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dsymbolsem.d
@@ -60,13 +60,13 @@ import dmd.root.filename;
 import dmd.common.outbuffer;
 import dmd.root.rmem;
 import dmd.root.rootobject;
+import dmd.root.utf;
 import dmd.semantic2;
 import dmd.semantic3;
 import dmd.sideeffect;
 import dmd.statementsem;
 import dmd.staticassert;
 import dmd.tokens;
-import dmd.utf;
 import dmd.utils;
 import dmd.statement;
 import dmd.target;
diff --git a/gcc/d/dmd/dtemplate.d b/gcc/d/dmd/dtemplate.d
index b1760dd23cf..c0d17f744be 100644
--- a/gcc/d/dmd/dtemplate.d
+++ b/gcc/d/dmd/dtemplate.d
@@ -28,9 +28,9 @@
  *   arguments, and uses it if found.
  * - Otherwise, the rest of semantic is run on the `TemplateInstance`.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dtemplate.d, _dtemplate.d)
  * Documentation:  https://dlang.org/phobos/dmd_dtemplate.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dtemplate.d
diff --git a/gcc/d/dmd/dtoh.d b/gcc/d/dmd/dtoh.d
index 51f53c8402f..dbc21b3b6dd 100644
--- a/gcc/d/dmd/dtoh.d
+++ b/gcc/d/dmd/dtoh.d
@@ -2,9 +2,9 @@
  * This module contains the implementation of the C++ header generation available through
  * the command line switch -Hc.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dtohd, _dtoh.d)
  * Documentation:  https://dlang.org/phobos/dmd_dtoh.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dtoh.d
diff --git a/gcc/d/dmd/dversion.d b/gcc/d/dmd/dversion.d
index 49ee4b3b3ec..94753bb8a82 100644
--- a/gcc/d/dmd/dversion.d
+++ b/gcc/d/dmd/dversion.d
@@ -4,9 +4,9 @@
  * Specification: $(LINK2 https://dlang.org/spec/version.html#version-specification, Version Specification),
  *                $(LINK2 https://dlang.org/spec/version.html#debug_specification, Debug Specification).
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/dversion.d, _dversion.d)
  * Documentation:  https://dlang.org/phobos/dmd_dversion.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dversion.d
diff --git a/gcc/d/dmd/entity.d b/gcc/d/dmd/entity.d
index f22dfdb0249..ef2fdef02f4 100644
--- a/gcc/d/dmd/entity.d
+++ b/gcc/d/dmd/entity.d
@@ -3,9 +3,9 @@
  *
  * Specification $(LINK2 https://dlang.org/spec/entity.html, Named Character Entities)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/entity.d, _entity.d)
  * Documentation:  https://dlang.org/phobos/dmd_entity.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/entity.d
@@ -36,8 +36,8 @@ private:
 /*********************************************
  * Convert from named entity to its encoding.
  * For reference:
- *      http://www.htmlhelp.com/reference/html40/entities/
- *      http://www.w3.org/2003/entities/2007/w3centities-f.ent
+ *      https://www.htmlhelp.com/reference/html40/entities/
+ *      https://www.w3.org/2003/entities/2007/w3centities-f.ent
  */
 struct NameId
 {
diff --git a/gcc/d/dmd/enum.h b/gcc/d/dmd/enum.h
index 76c1235715b..ab80c8b9073 100644
--- a/gcc/d/dmd/enum.h
+++ b/gcc/d/dmd/enum.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/enum.h
  */
 
diff --git a/gcc/d/dmd/errors.d b/gcc/d/dmd/errors.d
index 91a5c77b53e..114bd44e32c 100644
--- a/gcc/d/dmd/errors.d
+++ b/gcc/d/dmd/errors.d
@@ -1,9 +1,9 @@
 /**
  * Functions for raising errors.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/errors.d, _errors.d)
  * Documentation:  https://dlang.org/phobos/dmd_errors.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/errors.d
diff --git a/gcc/d/dmd/errors.h b/gcc/d/dmd/errors.h
index 6d9587d1436..000242ce49f 100644
--- a/gcc/d/dmd/errors.h
+++ b/gcc/d/dmd/errors.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/errors.h
  */
 
diff --git a/gcc/d/dmd/escape.d b/gcc/d/dmd/escape.d
index 62f87e506ab..e60ee9c8f54 100644
--- a/gcc/d/dmd/escape.d
+++ b/gcc/d/dmd/escape.d
@@ -1,9 +1,9 @@
 /**
  * Most of the logic to implement scoped pointers and scoped references is here.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/escape.d, _escape.d)
  * Documentation:  https://dlang.org/phobos/dmd_escape.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/escape.d
diff --git a/gcc/d/dmd/expression.d b/gcc/d/dmd/expression.d
index 749a50a38f3..523015e1a68 100644
--- a/gcc/d/dmd/expression.d
+++ b/gcc/d/dmd/expression.d
@@ -3,9 +3,9 @@
  *
  * Specification: ($LINK2 https://dlang.org/spec/expression.html, Expressions)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/expression.d, _expression.d)
  * Documentation:  https://dlang.org/phobos/dmd_expression.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/expression.d
@@ -26,7 +26,6 @@ import dmd.astenums;
 import dmd.ast_node;
 import dmd.gluelayer;
 import dmd.canthrow;
-import dmd.complex;
 import dmd.constfold;
 import dmd.ctfeexpr;
 import dmd.ctorflow;
@@ -57,6 +56,7 @@ import dmd.nspace;
 import dmd.objc;
 import dmd.opover;
 import dmd.optimize;
+import dmd.root.complex;
 import dmd.root.ctfloat;
 import dmd.root.filename;
 import dmd.common.outbuffer;
@@ -64,12 +64,12 @@ import dmd.root.optional;
 import dmd.root.rmem;
 import dmd.root.rootobject;
 import dmd.root.string;
+import dmd.root.utf;
 import dmd.safe;
 import dmd.sideeffect;
 import dmd.target;
 import dmd.tokens;
 import dmd.typesem;
-import dmd.utf;
 import dmd.visitor;
 
 enum LOGSEMANTIC = false;
@@ -659,7 +659,7 @@ enum WANTvalue  = 0;    // default
 enum WANTexpand = 1;    // expand const/immutable variables if possible
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#expression
+ * https://dlang.org/spec/expression.html#expression
  */
 extern (C++) abstract class Expression : ASTNode
 {
@@ -2262,7 +2262,7 @@ extern (C++) final class DsymbolExp : Expression
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#this
+ * https://dlang.org/spec/expression.html#this
  */
 extern (C++) class ThisExp : Expression
 {
@@ -2318,7 +2318,7 @@ extern (C++) class ThisExp : Expression
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#super
+ * https://dlang.org/spec/expression.html#super
  */
 extern (C++) final class SuperExp : ThisExp
 {
@@ -2334,7 +2334,7 @@ extern (C++) final class SuperExp : ThisExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#null
+ * https://dlang.org/spec/expression.html#null
  */
 extern (C++) final class NullExp : Expression
 {
@@ -2380,7 +2380,7 @@ extern (C++) final class NullExp : Expression
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#string_literals
+ * https://dlang.org/spec/expression.html#string_literals
  */
 extern (C++) final class StringExp : Expression
 {
@@ -2904,7 +2904,7 @@ extern (C++) final class TupleExp : Expression
 /***********************************************************
  * [ e1, e2, e3, ... ]
  *
- * http://dlang.org/spec/expression.html#array_literals
+ * https://dlang.org/spec/expression.html#array_literals
  */
 extern (C++) final class ArrayLiteralExp : Expression
 {
@@ -3069,7 +3069,7 @@ extern (C++) final class ArrayLiteralExp : Expression
 /***********************************************************
  * [ key0 : value0, key1 : value1, ... ]
  *
- * http://dlang.org/spec/expression.html#associative_array_literals
+ * https://dlang.org/spec/expression.html#associative_array_literals
  */
 extern (C++) final class AssocArrayLiteralExp : Expression
 {
@@ -5423,7 +5423,7 @@ extern (C++) final class VectorArrayExp : UnaExp
 /***********************************************************
  * e1 [lwr .. upr]
  *
- * http://dlang.org/spec/expression.html#slice_expressions
+ * https://dlang.org/spec/expression.html#slice_expressions
  */
 extern (C++) final class SliceExp : UnaExp
 {
@@ -5506,7 +5506,7 @@ extern (C++) final class ArrayLengthExp : UnaExp
 /***********************************************************
  * e1 [ a0, a1, a2, a3 ,... ]
  *
- * http://dlang.org/spec/expression.html#index_expressions
+ * https://dlang.org/spec/expression.html#index_expressions
  */
 extern (C++) final class ArrayExp : UnaExp
 {
@@ -6208,7 +6208,7 @@ extern (C++) final class CatDcharAssignExp : CatAssignExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#add_expressions
+ * https://dlang.org/spec/expression.html#add_expressions
  */
 extern (C++) final class AddExp : BinExp
 {
@@ -6239,7 +6239,7 @@ extern (C++) final class MinExp : BinExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#cat_expressions
+ * https://dlang.org/spec/expression.html#cat_expressions
  */
 extern (C++) final class CatExp : BinExp
 {
@@ -6262,7 +6262,7 @@ extern (C++) final class CatExp : BinExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#mul_expressions
+ * https://dlang.org/spec/expression.html#mul_expressions
  */
 extern (C++) final class MulExp : BinExp
 {
@@ -6278,7 +6278,7 @@ extern (C++) final class MulExp : BinExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#mul_expressions
+ * https://dlang.org/spec/expression.html#mul_expressions
  */
 extern (C++) final class DivExp : BinExp
 {
@@ -6294,7 +6294,7 @@ extern (C++) final class DivExp : BinExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#mul_expressions
+ * https://dlang.org/spec/expression.html#mul_expressions
  */
 extern (C++) final class ModExp : BinExp
 {
@@ -6310,7 +6310,7 @@ extern (C++) final class ModExp : BinExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#pow_expressions
+ * https://dlang.org/spec/expression.html#pow_expressions
  */
 extern (C++) final class PowExp : BinExp
 {
@@ -6416,8 +6416,8 @@ extern (C++) final class XorExp : BinExp
 }
 
 /***********************************************************
- * http://dlang.org/spec/expression.html#andand_expressions
- * http://dlang.org/spec/expression.html#oror_expressions
+ * https://dlang.org/spec/expression.html#andand_expressions
+ * https://dlang.org/spec/expression.html#oror_expressions
  */
 extern (C++) final class LogicalExp : BinExp
 {
@@ -6437,7 +6437,7 @@ extern (C++) final class LogicalExp : BinExp
  * `op` is one of:
  *      EXP.lessThan, EXP.lessOrEqual, EXP.greaterThan, EXP.greaterOrEqual
  *
- * http://dlang.org/spec/expression.html#relation_expressions
+ * https://dlang.org/spec/expression.html#relation_expressions
  */
 extern (C++) final class CmpExp : BinExp
 {
@@ -6490,7 +6490,7 @@ extern (C++) final class RemoveExp : BinExp
  *
  * EXP.equal and EXP.notEqual
  *
- * http://dlang.org/spec/expression.html#equality_expressions
+ * https://dlang.org/spec/expression.html#equality_expressions
  */
 extern (C++) final class EqualExp : BinExp
 {
@@ -6511,7 +6511,7 @@ extern (C++) final class EqualExp : BinExp
  *
  * EXP.identity and EXP.notIdentity
  *
- *  http://dlang.org/spec/expression.html#identity_expressions
+ *  https://dlang.org/spec/expression.html#identity_expressions
  */
 extern (C++) final class IdentityExp : BinExp
 {
@@ -6530,7 +6530,7 @@ extern (C++) final class IdentityExp : BinExp
 /***********************************************************
  * `econd ? e1 : e2`
  *
- * http://dlang.org/spec/expression.html#conditional_expressions
+ * https://dlang.org/spec/expression.html#conditional_expressions
  */
 extern (C++) final class CondExp : BinExp
 {
diff --git a/gcc/d/dmd/expression.h b/gcc/d/dmd/expression.h
index 411822cb9d6..f848cce72a9 100644
--- a/gcc/d/dmd/expression.h
+++ b/gcc/d/dmd/expression.h
@@ -1,22 +1,22 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/expression.h
  */
 
 #pragma once
 
 #include "ast_node.h"
-#include "complex_t.h"
 #include "globals.h"
 #include "arraytypes.h"
 #include "visitor.h"
 #include "tokens.h"
 
+#include "root/complex_t.h"
 #include "root/dcompat.h"
 #include "root/optional.h"
 
diff --git a/gcc/d/dmd/expressionsem.d b/gcc/d/dmd/expressionsem.d
index 2f1cd4767c5..100860612dc 100644
--- a/gcc/d/dmd/expressionsem.d
+++ b/gcc/d/dmd/expressionsem.d
@@ -3,9 +3,9 @@
  *
  * Specification: ($LINK2 https://dlang.org/spec/expression.html, Expressions)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/expressionsem.d, _expressionsem.d)
  * Documentation:  https://dlang.org/phobos/dmd_expressionsem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/expressionsem.d
@@ -67,6 +67,7 @@ import dmd.root.filename;
 import dmd.common.outbuffer;
 import dmd.root.rootobject;
 import dmd.root.string;
+import dmd.root.utf;
 import dmd.semantic2;
 import dmd.semantic3;
 import dmd.sideeffect;
@@ -76,7 +77,6 @@ import dmd.tokens;
 import dmd.traits;
 import dmd.typesem;
 import dmd.typinf;
-import dmd.utf;
 import dmd.utils;
 import dmd.visitor;
 
@@ -5980,7 +5980,7 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor
 
         /* Be wary of CWE-22: Improper Limitation of a Pathname to a Restricted Directory
          * ('Path Traversal') attacks.
-         * http://cwe.mitre.org/data/definitions/22.html
+         * https://cwe.mitre.org/data/definitions/22.html
          */
 
         if (FileName.absolute(namez))
@@ -6013,7 +6013,7 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor
                 const attr = FileName.exists(path);
                 const(char)* err = attr == 2 ? "" :
                     (attr == 1 ? " (not a directory)" : " (path not found)");
-                e.errorSupplemental("[%zu]: `%s`%s", idx, path, err);
+                e.errorSupplemental("[%llu]: `%s`%s", cast(ulong)idx, path, err);
             }
             return setError();
         }
@@ -13108,7 +13108,7 @@ private bool fit(StructDeclaration sd, const ref Loc loc, Scope* sc, Expressions
                 // CTFE sometimes creates null as hidden pointer; we'll allow this.
                 continue;
             }
-                .error(loc, "more initializers than fields (%zu) of `%s`", nfields, sd.toChars());
+                .error(loc, "more initializers than fields (%llu) of `%s`", cast(ulong)nfields, sd.toChars());
             return false;
         }
         VarDeclaration v = sd.fields[i];
diff --git a/gcc/d/dmd/file_manager.d b/gcc/d/dmd/file_manager.d
index 05aeb7df5dc..0ca756eb58a 100644
--- a/gcc/d/dmd/file_manager.d
+++ b/gcc/d/dmd/file_manager.d
@@ -1,8 +1,8 @@
 /**
  * Read a file from disk and store it in memory.
  *
- * Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/file_manager.d, _file_manager.d)
  * Documentation:  https://dlang.org/phobos/dmd_file_manager.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/file_manager.d
diff --git a/gcc/d/dmd/file_manager.h b/gcc/d/dmd/file_manager.h
index 7488fab17fc..6705f24301f 100644
--- a/gcc/d/dmd/file_manager.h
+++ b/gcc/d/dmd/file_manager.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/file_manager.h
  */
 
diff --git a/gcc/d/dmd/foreachvar.d b/gcc/d/dmd/foreachvar.d
index e9a43f92105..b779eaeeeee 100644
--- a/gcc/d/dmd/foreachvar.d
+++ b/gcc/d/dmd/foreachvar.d
@@ -1,9 +1,9 @@
 /**
  * Utility to visit every variable in an expression.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/foreachvar.d, _foreachvar.d)
  * Documentation:  https://dlang.org/phobos/dmd_foreachvar.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/foreachvar.d
diff --git a/gcc/d/dmd/func.d b/gcc/d/dmd/func.d
index da33587fc88..b5148be30bd 100644
--- a/gcc/d/dmd/func.d
+++ b/gcc/d/dmd/func.d
@@ -8,9 +8,9 @@
  * - `invariant`
  * - `unittest`
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/func.d, _func.d)
  * Documentation:  https://dlang.org/phobos/dmd_func.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/func.d
diff --git a/gcc/d/dmd/globals.d b/gcc/d/dmd/globals.d
index 7409dcc2902..22ccdddc029 100644
--- a/gcc/d/dmd/globals.d
+++ b/gcc/d/dmd/globals.d
@@ -1,9 +1,9 @@
 /**
  * Stores command line options and contains other miscellaneous declarations.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/globals.d, _globals.d)
  * Documentation:  https://dlang.org/phobos/dmd_globals.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/globals.d
@@ -126,7 +126,7 @@ extern (C++) struct Param
     bool stackstomp;            // add stack stomping code
     bool useUnitTests;          // generate unittest code
     bool useInline = false;     // inline expand functions
-    FeatureState useDIP25;  // implement http://wiki.dlang.org/DIP25
+    FeatureState useDIP25;  // implement https://wiki.dlang.org/DIP25
     FeatureState useDIP1000; // implement https://dlang.org/spec/memory-safe-d.html#scope-return-params
     bool useDIP1021;        // implement https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1021.md
     bool release;           // build release version
@@ -162,7 +162,7 @@ extern (C++) struct Param
                             // https://issues.dlang.org/show_bug.cgi?id=14246
     bool fieldwise;         // do struct equality testing field-wise rather than by memcmp()
     bool rvalueRefParam;    // allow rvalues to be arguments to ref parameters
-                            // http://dconf.org/2019/talks/alexandrescu.html
+                            // https://dconf.org/2019/talks/alexandrescu.html
                             // https://gist.github.com/andralex/e5405a5d773f07f73196c05f8339435a
                             // https://digitalmars.com/d/archives/digitalmars/D/Binding_rvalues_to_ref_parameters_redux_325087.html
                             // Implementation: https://github.com/dlang/dmd/pull/9817
@@ -303,7 +303,7 @@ extern (C++) struct Global
 {
     const(char)[] inifilename; /// filename of configuration file as given by `-conf=`, or default value
 
-    string copyright = "Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved";
+    string copyright = "Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved";
     string written = "written by Walter Bright";
 
     Array!(const(char)*)* path;         /// Array of char*'s which form the import lookup path
@@ -655,7 +655,7 @@ enum PINLINE : ubyte
     always,   /// always inline
 }
 
-alias StorageClass = uinteger_t;
+alias StorageClass = ulong;
 
 /// Collection of global state
 extern (C++) __gshared Global global;
diff --git a/gcc/d/dmd/globals.h b/gcc/d/dmd/globals.h
index 2275ec517e5..4e76967ee22 100644
--- a/gcc/d/dmd/globals.h
+++ b/gcc/d/dmd/globals.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/globals.h
  */
 
@@ -115,7 +115,7 @@ struct Param
     bool stackstomp;    // add stack stomping code
     bool useUnitTests;  // generate unittest code
     bool useInline;     // inline expand functions
-    FeatureState useDIP25;      // implement http://wiki.dlang.org/DIP25
+    FeatureState useDIP25;      // implement https://wiki.dlang.org/DIP25
     FeatureState useDIP1000; // implement https://dlang.org/spec/memory-safe-d.html#scope-return-params
     bool useDIP1021;    // implement https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1021.md
     bool release;       // build release version
diff --git a/gcc/d/dmd/gluelayer.d b/gcc/d/dmd/gluelayer.d
index 4018126cb26..73a1f00f776 100644
--- a/gcc/d/dmd/gluelayer.d
+++ b/gcc/d/dmd/gluelayer.d
@@ -3,9 +3,9 @@
  *
  * This 'glues' either the DMC or GCC back-end to the front-end.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/gluelayer.d, _gluelayer.d)
  * Documentation:  https://dlang.org/phobos/dmd_gluelayer.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/gluelayer.d
diff --git a/gcc/d/dmd/hdrgen.d b/gcc/d/dmd/hdrgen.d
index a4542986739..6fc86c382a1 100644
--- a/gcc/d/dmd/hdrgen.d
+++ b/gcc/d/dmd/hdrgen.d
@@ -3,9 +3,9 @@
  *
  * Also used to convert AST nodes to D code in general, e.g. for error messages or `printf` debugging.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/hdrgen.d, _hdrgen.d)
  * Documentation:  https://dlang.org/phobos/dmd_hdrgen.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/hdrgen.d
@@ -21,7 +21,6 @@ import dmd.aliasthis;
 import dmd.arraytypes;
 import dmd.astenums;
 import dmd.attrib;
-import dmd.complex;
 import dmd.cond;
 import dmd.ctfeexpr;
 import dmd.dclass;
@@ -43,6 +42,7 @@ import dmd.init;
 import dmd.mtype;
 import dmd.nspace;
 import dmd.parse;
+import dmd.root.complex;
 import dmd.root.ctfloat;
 import dmd.common.outbuffer;
 import dmd.root.rootobject;
diff --git a/gcc/d/dmd/hdrgen.h b/gcc/d/dmd/hdrgen.h
index 531d5d8c0da..0488c51b9e6 100644
--- a/gcc/d/dmd/hdrgen.h
+++ b/gcc/d/dmd/hdrgen.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Dave Fladebo
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/hdrgen.h
  */
 
diff --git a/gcc/d/dmd/iasm.d b/gcc/d/dmd/iasm.d
index df8d1c98770..29aca3ef34e 100644
--- a/gcc/d/dmd/iasm.d
+++ b/gcc/d/dmd/iasm.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/iasm.html, Inline Assembler)
  *
- *              Copyright (C) 2018-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ *              Copyright (C) 2018-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/iasm.d, _iasm.d)
  * Documentation:  https://dlang.org/phobos/dmd_iasm.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/iasm.d
diff --git a/gcc/d/dmd/iasmgcc.d b/gcc/d/dmd/iasmgcc.d
index cd3011731f5..495126de54f 100644
--- a/gcc/d/dmd/iasmgcc.d
+++ b/gcc/d/dmd/iasmgcc.d
@@ -1,9 +1,9 @@
 /**
  * Inline assembler for the GCC D compiler.
  *
- *              Copyright (C) 2018-2021 by The D Language Foundation, All Rights Reserved
+ *              Copyright (C) 2018-2022 by The D Language Foundation, All Rights Reserved
  * Authors:     Iain Buclaw
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/iasmgcc.d, _iasmgcc.d)
  * Documentation:  https://dlang.org/phobos/dmd_iasmgcc.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/iasmgcc.d
diff --git a/gcc/d/dmd/id.d b/gcc/d/dmd/id.d
index d33b676a032..cef1b8e80ec 100644
--- a/gcc/d/dmd/id.d
+++ b/gcc/d/dmd/id.d
@@ -1,9 +1,9 @@
 /**
  * Contains the `Id` struct with a list of predefined symbols the compiler knows about.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/id.d, _id.d)
  * Documentation:  https://dlang.org/phobos/dmd_id.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/id.d
diff --git a/gcc/d/dmd/id.h b/gcc/d/dmd/id.h
index 8066747c69b..984c20313ce 100644
--- a/gcc/d/dmd/id.h
+++ b/gcc/d/dmd/id.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 2017-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 2017-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/id.h
  */
 
diff --git a/gcc/d/dmd/identifier.d b/gcc/d/dmd/identifier.d
index 8add74a1427..b42b4a16b88 100644
--- a/gcc/d/dmd/identifier.d
+++ b/gcc/d/dmd/identifier.d
@@ -1,9 +1,9 @@
 /**
  * Defines an identifier, which is the name of a `Dsymbol`.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/identifier.d, _identifier.d)
  * Documentation:  https://dlang.org/phobos/dmd_identifier.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/identifier.d
@@ -20,8 +20,8 @@ import dmd.common.outbuffer;
 import dmd.root.rootobject;
 import dmd.root.string;
 import dmd.root.stringtable;
+import dmd.root.utf;
 import dmd.tokens;
-import dmd.utf;
 
 
 /***********************************************************
diff --git a/gcc/d/dmd/identifier.h b/gcc/d/dmd/identifier.h
index 790d5a036d4..4c748beb5d8 100644
--- a/gcc/d/dmd/identifier.h
+++ b/gcc/d/dmd/identifier.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/identifier.h
  */
 
diff --git a/gcc/d/dmd/impcnvtab.d b/gcc/d/dmd/impcnvtab.d
index db09f0c568e..ab46f5eebbd 100644
--- a/gcc/d/dmd/impcnvtab.d
+++ b/gcc/d/dmd/impcnvtab.d
@@ -6,9 +6,9 @@
  * Specification: $(LINK2 https://dlang.org/spec/type.html#integer-promotions, Integer Promotions),
  *   $(LINK2 https://dlang.org/spec/type.html#usual-arithmetic-conversions, Usual Arithmetic Conversions).
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/impcnvtab.d, _impcnvtab.d)
  * Documentation:  https://dlang.org/phobos/dmd_impcnvtab.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/impcnvtab.d
diff --git a/gcc/d/dmd/imphint.d b/gcc/d/dmd/imphint.d
index e1919a67037..f03113dc657 100644
--- a/gcc/d/dmd/imphint.d
+++ b/gcc/d/dmd/imphint.d
@@ -3,9 +3,9 @@
  *
  * For example, prompt to `import std.stdio` when using `writeln`.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/imphint.d, _imphint.d)
  * Documentation:  https://dlang.org/phobos/dmd_imphint.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/imphint.d
diff --git a/gcc/d/dmd/import.h b/gcc/d/dmd/import.h
index 34c5a05a8cd..5e7550e16ec 100644
--- a/gcc/d/dmd/import.h
+++ b/gcc/d/dmd/import.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/import.h
  */
 
diff --git a/gcc/d/dmd/importc.d b/gcc/d/dmd/importc.d
index 5ee961f4596..1b92386c328 100644
--- a/gcc/d/dmd/importc.d
+++ b/gcc/d/dmd/importc.d
@@ -3,9 +3,9 @@
  *
  * Specification: C11
  *
- * Copyright:   Copyright (C) 2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 2021-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/importc.d, _importc.d)
  * Documentation:  https://dlang.org/phobos/dmd_importc.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/importc.d
diff --git a/gcc/d/dmd/init.d b/gcc/d/dmd/init.d
index d036ee1635b..179e0b6a5ab 100644
--- a/gcc/d/dmd/init.d
+++ b/gcc/d/dmd/init.d
@@ -1,9 +1,9 @@
 /**
  * Defines initializers of variables, e.g. the array literal in `int[3] x = [0, 1, 2]`.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/init.d, _init.d)
  * Documentation:  https://dlang.org/phobos/dmd_init.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/init.d
diff --git a/gcc/d/dmd/init.h b/gcc/d/dmd/init.h
index 23204b81253..c6c8c626a3a 100644
--- a/gcc/d/dmd/init.h
+++ b/gcc/d/dmd/init.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/init.h
  */
 
diff --git a/gcc/d/dmd/initsem.d b/gcc/d/dmd/initsem.d
index 826b0adebed..6b10ace4e01 100644
--- a/gcc/d/dmd/initsem.d
+++ b/gcc/d/dmd/initsem.d
@@ -1,9 +1,9 @@
 /**
  * Semantic analysis of initializers.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/initsem.d, _initsem.d)
  * Documentation:  https://dlang.org/phobos/dmd_initsem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/initsem.d
diff --git a/gcc/d/dmd/inline.d b/gcc/d/dmd/inline.d
index cfd619ac4a4..25982a696c2 100644
--- a/gcc/d/dmd/inline.d
+++ b/gcc/d/dmd/inline.d
@@ -4,9 +4,9 @@
  * The AST is traversed, and every function call is considered for inlining using `inlinecost.d`.
  * The function call is then inlined if this cost is below a threshold.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/inline.d, _inline.d)
  * Documentation:  https://dlang.org/phobos/dmd_inline.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/inline.d
diff --git a/gcc/d/dmd/intrange.d b/gcc/d/dmd/intrange.d
index 9b70f49a0e8..d0206b6ff97 100644
--- a/gcc/d/dmd/intrange.d
+++ b/gcc/d/dmd/intrange.d
@@ -1,9 +1,9 @@
 /**
  * Implement $(LINK2 https://digitalmars.com/articles/b62.html, Value Range Propagation).
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/intrange.d, _intrange.d)
  * Documentation:  https://dlang.org/phobos/dmd_intrange.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/intrange.d
@@ -255,7 +255,7 @@ struct SignExtendedNumber
         uinteger_t v = copySign(value, negative);
 
         // compute base-2 log of 'v' to determine the maximum allowed bits to shift.
-        // Ref: http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog
+        // Ref: https://graphics.stanford.edu/~seander/bithacks.html#IntegerLog
 
         // Why is this a size_t? Looks like a bug.
         size_t r, s;
diff --git a/gcc/d/dmd/json.d b/gcc/d/dmd/json.d
index fef515071f9..ba2dd179423 100644
--- a/gcc/d/dmd/json.d
+++ b/gcc/d/dmd/json.d
@@ -1,9 +1,9 @@
 /**
  * Code for generating .json descriptions of the module when passing the `-X` flag to dmd.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/json.d, _json.d)
  * Documentation:  https://dlang.org/phobos/dmd_json.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/json.d
diff --git a/gcc/d/dmd/json.h b/gcc/d/dmd/json.h
index 1311fb3ab2e..979440cd308 100644
--- a/gcc/d/dmd/json.h
+++ b/gcc/d/dmd/json.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/json.h
  */
 
diff --git a/gcc/d/dmd/lambdacomp.d b/gcc/d/dmd/lambdacomp.d
index 336f8dd80ec..91df9cc9f25 100644
--- a/gcc/d/dmd/lambdacomp.d
+++ b/gcc/d/dmd/lambdacomp.d
@@ -5,9 +5,9 @@
  * The serialization is a string which contains the type of the parameters and the string
  * represantation of the lambda expression.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/lamdbacomp.d, _lambdacomp.d)
  * Documentation:  https://dlang.org/phobos/dmd_lambdacomp.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/lambdacomp.d
diff --git a/gcc/d/dmd/lexer.d b/gcc/d/dmd/lexer.d
index bb76a1a3a69..e74b1921760 100644
--- a/gcc/d/dmd/lexer.d
+++ b/gcc/d/dmd/lexer.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/lex.html, Lexical)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/lexer.d, _lexer.d)
  * Documentation:  https://dlang.org/phobos/dmd_lexer.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/lexer.d
@@ -32,8 +32,8 @@ import dmd.common.outbuffer;
 import dmd.root.port;
 import dmd.root.rmem;
 import dmd.root.string;
+import dmd.root.utf;
 import dmd.tokens;
-import dmd.utf;
 import dmd.utils;
 
 nothrow:
diff --git a/gcc/d/dmd/mangle.h b/gcc/d/dmd/mangle.h
index 670cf4d6230..512184ae9aa 100644
--- a/gcc/d/dmd/mangle.h
+++ b/gcc/d/dmd/mangle.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/mangle.h
  */
 
diff --git a/gcc/d/dmd/module.h b/gcc/d/dmd/module.h
index fe4c73a021c..f020bfdb5a3 100644
--- a/gcc/d/dmd/module.h
+++ b/gcc/d/dmd/module.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/module.h
  */
 
diff --git a/gcc/d/dmd/mtype.d b/gcc/d/dmd/mtype.d
index e338a05a524..0257faa65b7 100644
--- a/gcc/d/dmd/mtype.d
+++ b/gcc/d/dmd/mtype.d
@@ -1,9 +1,9 @@
 /**
  * Defines a D type.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/mtype.d, _mtype.d)
  * Documentation:  https://dlang.org/phobos/dmd_mtype.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/mtype.d
diff --git a/gcc/d/dmd/mtype.h b/gcc/d/dmd/mtype.h
index 430b39b205c..fde5027e8b8 100644
--- a/gcc/d/dmd/mtype.h
+++ b/gcc/d/dmd/mtype.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/mtype.h
  */
 
diff --git a/gcc/d/dmd/nogc.d b/gcc/d/dmd/nogc.d
index 8bdddb8f9ea..ed3f8322708 100644
--- a/gcc/d/dmd/nogc.d
+++ b/gcc/d/dmd/nogc.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/function.html#nogc-functions, No-GC Functions)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/nogc.d, _nogc.d)
  * Documentation:  https://dlang.org/phobos/dmd_nogc.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/nogc.d
diff --git a/gcc/d/dmd/nspace.d b/gcc/d/dmd/nspace.d
index 215f2595888..29f920aaa4c 100644
--- a/gcc/d/dmd/nspace.d
+++ b/gcc/d/dmd/nspace.d
@@ -36,9 +36,9 @@
  * are valid D identifier.
  *
  * See_Also:    https://github.com/dlang/dmd/pull/10031
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/nspace.d, _nspace.d)
  * Documentation:  https://dlang.org/phobos/dmd_nspace.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/nspace.d
diff --git a/gcc/d/dmd/nspace.h b/gcc/d/dmd/nspace.h
index 43d36e9e4e0..7d6f65d5fa6 100644
--- a/gcc/d/dmd/nspace.h
+++ b/gcc/d/dmd/nspace.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/nspace.h
  */
 
diff --git a/gcc/d/dmd/ob.d b/gcc/d/dmd/ob.d
index 156428eb699..c2594fe0138 100644
--- a/gcc/d/dmd/ob.d
+++ b/gcc/d/dmd/ob.d
@@ -1,9 +1,9 @@
 /**
  * Flow analysis for Ownership/Borrowing
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/ob.d, _ob.d)
  * Documentation:  https://dlang.org/phobos/dmd_escape.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/ob.d
diff --git a/gcc/d/dmd/objc.d b/gcc/d/dmd/objc.d
index 42363818dd8..6d283e17cc6 100644
--- a/gcc/d/dmd/objc.d
+++ b/gcc/d/dmd/objc.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/objc_interface.html, Interfacing to Objective-C)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/objc.d, _objc.d)
  * Documentation:  https://dlang.org/phobos/dmd_objc.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/objc.d
diff --git a/gcc/d/dmd/objc.h b/gcc/d/dmd/objc.h
index 483e50149e7..a03015489a4 100644
--- a/gcc/d/dmd/objc.h
+++ b/gcc/d/dmd/objc.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 2015-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 2015-2022 by The D Language Foundation, All Rights Reserved
  * written by Michel Fortin
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/objc.h
  */
 
diff --git a/gcc/d/dmd/opover.d b/gcc/d/dmd/opover.d
index bafeaa332dc..c932d043dbc 100644
--- a/gcc/d/dmd/opover.d
+++ b/gcc/d/dmd/opover.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/operatoroverloading.html, Operator Overloading)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/opover.d, _opover.d)
  * Documentation:  https://dlang.org/phobos/dmd_opover.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/opover.d
diff --git a/gcc/d/dmd/optimize.d b/gcc/d/dmd/optimize.d
index ca9e0b3b616..5864fa2af8e 100644
--- a/gcc/d/dmd/optimize.d
+++ b/gcc/d/dmd/optimize.d
@@ -1,9 +1,9 @@
 /**
  * Perform constant folding.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/optimize.d, _optimize.d)
  * Documentation:  https://dlang.org/phobos/dmd_optimize.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/optimize.d
diff --git a/gcc/d/dmd/parse.d b/gcc/d/dmd/parse.d
index 94056aba806..700f3c57921 100644
--- a/gcc/d/dmd/parse.d
+++ b/gcc/d/dmd/parse.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/grammar.html, D Grammar)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/parse.d, _parse.d)
  * Documentation:  https://dlang.org/phobos/dmd_parse.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/parse.d
@@ -6081,7 +6081,19 @@ LagainStc:
                 check(TOK.leftParenthesis);
                 param = parseAssignCondition();
                 condition = parseExpression();
-                check(TOK.rightParenthesis);
+                if (token.value != TOK.rightParenthesis && condition)
+                {
+                    error("missing closing `)` after `if (%s`", param ? "declaration".ptr : condition.toChars());
+                }
+                else
+                    check(TOK.rightParenthesis);
+                if (token.value == TOK.rightParenthesis)
+                {
+                    if (condition) // if not an error in condition
+                        error("extra `)` after `if (%s)`", param ? "declaration".ptr : condition.toChars());
+                    nextToken();
+                }
+
                 {
                     const lookingForElseSave = lookingForElse;
                     lookingForElse = loc;
diff --git a/gcc/d/dmd/printast.d b/gcc/d/dmd/printast.d
index 33b5e7f350a..61331453ebc 100644
--- a/gcc/d/dmd/printast.d
+++ b/gcc/d/dmd/printast.d
@@ -1,9 +1,9 @@
 /**
  * Provides an AST printer for debugging.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/printast.d, _printast.d)
  * Documentation:  https://dlang.org/phobos/dmd_printast.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/printast.d
diff --git a/gcc/d/dmd/root/README.md b/gcc/d/dmd/root/README.md
index e062d93da46..b393c123da1 100644
--- a/gcc/d/dmd/root/README.md
+++ b/gcc/d/dmd/root/README.md
@@ -5,7 +5,9 @@
 | [aav.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/aav.d)                 | An associative array implementation                                                        |
 | [array.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/array.d)             | A dynamic array implementation                                                             |
 | [bitarray.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/bitarray.d)       | A compact array of bits                                                                    |
+| [complex.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/complex.d)         | A complex number type                                                                      |
 | [ctfloat.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/ctfloat.d)         | A floating point type for compile-time calculations                                        |
+| [env.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/env.d)                 | Modify environment variables                                                               |
 | [file.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/file.d)               | Read a file from disk and store it in memory                                               |
 | [filename.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/filename.d)       | Encapsulate path and file names                                                            |
 | [hash.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/hash.d)               | Calculate a hash for a byte array                                                          |
@@ -19,4 +21,5 @@
 | [speller.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/speller.d)         | Try to detect typos in identifiers                                                         |
 | [string.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/string.d)           | Various string related functions                                                           |
 | [stringtable.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/stringtable.d) | Specialized associative array with string keys stored in a variable length structure       |
-| [strtold.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/strtold.d)         | D implementation of the standard C function `strtold` (String to long double)               |
+| [strtold.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/strtold.d)         | D implementation of the standard C function `strtold` (String to long double)              |
+| [utf.d](https://github.com/dlang/dmd/blob/master/src/dmd/root/utf.d)                 | Encoding/decoding Unicode text                                                             |
diff --git a/gcc/d/dmd/root/aav.d b/gcc/d/dmd/root/aav.d
index 92b58ba5cd8..5b8cc82e5eb 100644
--- a/gcc/d/dmd/root/aav.d
+++ b/gcc/d/dmd/root/aav.d
@@ -1,9 +1,9 @@
 /**
  * Associative array implementation.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/aav.d, root/_aav.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_aav.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/aav.d
diff --git a/gcc/d/dmd/root/array.d b/gcc/d/dmd/root/array.d
index ed925c8f6e3..cd2d7096d3d 100644
--- a/gcc/d/dmd/root/array.d
+++ b/gcc/d/dmd/root/array.d
@@ -2,9 +2,9 @@
 /**
  * Dynamic array implementation.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/array.d, root/_array.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_array.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/array.d
diff --git a/gcc/d/dmd/root/array.h b/gcc/d/dmd/root/array.h
index f573dcaa3ee..866b952d587 100644
--- a/gcc/d/dmd/root/array.h
+++ b/gcc/d/dmd/root/array.h
@@ -1,8 +1,8 @@
-/* Copyright (C) 2011-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 2011-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/array.h
  */
 
diff --git a/gcc/d/dmd/root/bitarray.d b/gcc/d/dmd/root/bitarray.d
index f9129611dd4..42c09fa96ce 100644
--- a/gcc/d/dmd/root/bitarray.d
+++ b/gcc/d/dmd/root/bitarray.d
@@ -1,9 +1,9 @@
 /**
  * Implementation of a bit array.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/bitarray.d, root/_bitarray.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_array.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/bitarray.d
diff --git a/gcc/d/dmd/root/bitarray.h b/gcc/d/dmd/root/bitarray.h
index e773711e7f5..c5c5d3a94bb 100644
--- a/gcc/d/dmd/root/bitarray.h
+++ b/gcc/d/dmd/root/bitarray.h
@@ -1,8 +1,8 @@
-/* Copyright (C) 2011-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 2011-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/bitarray.h
  */
 
diff --git a/gcc/d/dmd/complex.d b/gcc/d/dmd/root/complex.d
similarity index 86%
rename from gcc/d/dmd/complex.d
rename to gcc/d/dmd/root/complex.d
index 84bf5e9763a..d9a396d9677 100644
--- a/gcc/d/dmd/complex.d
+++ b/gcc/d/dmd/root/complex.d
@@ -1,15 +1,15 @@
 /**
  * Implements a complex number type.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
- * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/complex.d, _complex.d)
- * Documentation:  https://dlang.org/phobos/dmd_complex.html
- * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/complex.d
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/complex.d, _complex.d)
+ * Documentation:  https://dlang.org/phobos/dmd_root_complex.html
+ * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/complex.d
  */
 
-module dmd.complex;
+module dmd.root.complex;
 
 import dmd.root.ctfloat;
 
diff --git a/gcc/d/dmd/complex_t.h b/gcc/d/dmd/root/complex_t.h
similarity index 89%
rename from gcc/d/dmd/complex_t.h
rename to gcc/d/dmd/root/complex_t.h
index 335917135c2..c384848e9ec 100644
--- a/gcc/d/dmd/complex_t.h
+++ b/gcc/d/dmd/root/complex_t.h
@@ -1,16 +1,16 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
- * https://github.com/dlang/dmd/blob/master/src/dmd/complex_t.h
+ * https://www.boost.org/LICENSE_1_0.txt
+ * https://github.com/dlang/dmd/blob/master/src/dmd/root/complex_t.h
  */
 
 #pragma once
 
-#include "root/ctfloat.h"
+#include "ctfloat.h"
 
 /* Roll our own complex type for compilers that don't support complex
  */
diff --git a/gcc/d/dmd/root/ctfloat.d b/gcc/d/dmd/root/ctfloat.d
index 9b98742440d..5ccc7bf8e8c 100644
--- a/gcc/d/dmd/root/ctfloat.d
+++ b/gcc/d/dmd/root/ctfloat.d
@@ -1,9 +1,9 @@
 /**
  * Collects functions for compile-time floating-point calculations.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/ctfloat.d, root/_ctfloat.d)
  * Documentation: https://dlang.org/phobos/dmd_root_ctfloat.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/ctfloat.d
diff --git a/gcc/d/dmd/root/ctfloat.h b/gcc/d/dmd/root/ctfloat.h
index 1221b822188..6b83dbf1bbf 100644
--- a/gcc/d/dmd/root/ctfloat.h
+++ b/gcc/d/dmd/root/ctfloat.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/ctfloat.h
  */
 
diff --git a/gcc/d/dmd/root/dcompat.h b/gcc/d/dmd/root/dcompat.h
index 8b0bcf26049..5823e7c4886 100644
--- a/gcc/d/dmd/root/dcompat.h
+++ b/gcc/d/dmd/root/dcompat.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/dcompat.h
  */
 
diff --git a/gcc/d/dmd/root/file.d b/gcc/d/dmd/root/file.d
index 2722529bbac..6331a6297f1 100644
--- a/gcc/d/dmd/root/file.d
+++ b/gcc/d/dmd/root/file.d
@@ -1,9 +1,9 @@
 /**
  * Read a file from disk and store it in memory.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/file.d, root/_file.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_file.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/file.d
diff --git a/gcc/d/dmd/root/file.h b/gcc/d/dmd/root/file.h
index ee0d51e105c..44ca024d105 100644
--- a/gcc/d/dmd/root/file.h
+++ b/gcc/d/dmd/root/file.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/file.h
  */
 
diff --git a/gcc/d/dmd/root/filename.d b/gcc/d/dmd/root/filename.d
index d1500c8953b..292fccfb110 100644
--- a/gcc/d/dmd/root/filename.d
+++ b/gcc/d/dmd/root/filename.d
@@ -1,9 +1,9 @@
 /**
  * Encapsulate path and file names.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/filename.d, root/_filename.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_filename.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/filename.d
diff --git a/gcc/d/dmd/root/filename.h b/gcc/d/dmd/root/filename.h
index 9f773b5bb99..419a4c9ae68 100644
--- a/gcc/d/dmd/root/filename.h
+++ b/gcc/d/dmd/root/filename.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/filename.h
  */
 
diff --git a/gcc/d/dmd/root/hash.d b/gcc/d/dmd/root/hash.d
index f484819be55..fe97c421ab6 100644
--- a/gcc/d/dmd/root/hash.d
+++ b/gcc/d/dmd/root/hash.d
@@ -1,9 +1,9 @@
 /**
  * Hash functions for arbitrary binary data.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Martin Nowak, Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Martin Nowak, Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/hash.d, root/_hash.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_hash.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/hash.d
diff --git a/gcc/d/dmd/root/object.h b/gcc/d/dmd/root/object.h
index fb367bc1649..609e7633cbe 100644
--- a/gcc/d/dmd/root/object.h
+++ b/gcc/d/dmd/root/object.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/object.h
  */
 
diff --git a/gcc/d/dmd/root/optional.d b/gcc/d/dmd/root/optional.d
index a593ddd54fd..bb8150f904b 100644
--- a/gcc/d/dmd/root/optional.d
+++ b/gcc/d/dmd/root/optional.d
@@ -1,9 +1,9 @@
 /**
  * Optional implementation.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/optional.d, root/_optional.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_optional.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/optional.d
diff --git a/gcc/d/dmd/root/optional.h b/gcc/d/dmd/root/optional.h
index fa52b584f32..e4a41a06100 100644
--- a/gcc/d/dmd/root/optional.h
+++ b/gcc/d/dmd/root/optional.h
@@ -3,9 +3,9 @@
 /**
  * Optional implementation.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/optional.h, root/_optional.h)
  * Documentation:  https://dlang.org/phobos/dmd_root_optional.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/optional.h
diff --git a/gcc/d/dmd/root/port.d b/gcc/d/dmd/root/port.d
index 1bafa207077..0c8088cdd77 100644
--- a/gcc/d/dmd/root/port.d
+++ b/gcc/d/dmd/root/port.d
@@ -1,9 +1,9 @@
 /**
  * Portable routines for functions that have different implementations on different platforms.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/port.d, root/_port.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_port.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/port.d
diff --git a/gcc/d/dmd/root/port.h b/gcc/d/dmd/root/port.h
index 08cf66cf10e..069a365addf 100644
--- a/gcc/d/dmd/root/port.h
+++ b/gcc/d/dmd/root/port.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/port.h
  */
 
diff --git a/gcc/d/dmd/root/region.d b/gcc/d/dmd/root/region.d
index 50689fe872d..1e86f32fa60 100644
--- a/gcc/d/dmd/root/region.d
+++ b/gcc/d/dmd/root/region.d
@@ -1,9 +1,9 @@
 /**
  * Region storage allocator implementation.
  *
- * Copyright:   Copyright (C) 2019-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 2019-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/region.d, root/_region.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_region.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/region.d
diff --git a/gcc/d/dmd/root/rmem.d b/gcc/d/dmd/root/rmem.d
index 198f3d01437..ffe5ee10fef 100644
--- a/gcc/d/dmd/root/rmem.d
+++ b/gcc/d/dmd/root/rmem.d
@@ -1,9 +1,9 @@
 /**
  * Allocate memory using `malloc` or the GC depending on the configuration.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/rmem.d, root/_rmem.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_rmem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/rmem.d
diff --git a/gcc/d/dmd/root/rmem.h b/gcc/d/dmd/root/rmem.h
index 04d9e3fb9a2..1338d7c6e46 100644
--- a/gcc/d/dmd/root/rmem.h
+++ b/gcc/d/dmd/root/rmem.h
@@ -1,9 +1,9 @@
 
-/* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+/* Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/root/rmem.h
  */
 
diff --git a/gcc/d/dmd/root/rootobject.d b/gcc/d/dmd/root/rootobject.d
index 64104b823d1..7390d07cacc 100644
--- a/gcc/d/dmd/root/rootobject.d
+++ b/gcc/d/dmd/root/rootobject.d
@@ -1,9 +1,9 @@
 /**
  * Provide the root object that classes in dmd inherit from.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/rootobject.d, root/_rootobject.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_rootobject.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/rootobject.d
diff --git a/gcc/d/dmd/root/speller.d b/gcc/d/dmd/root/speller.d
index 543005b34df..b3e59f5182e 100644
--- a/gcc/d/dmd/root/speller.d
+++ b/gcc/d/dmd/root/speller.d
@@ -3,9 +3,9 @@
  *
  * Does not have any dependencies on the rest of DMD.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/speller.d, root/_speller.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_speller.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/speller.d
diff --git a/gcc/d/dmd/root/string.d b/gcc/d/dmd/root/string.d
index 73fe562f356..0c7cad0b390 100644
--- a/gcc/d/dmd/root/string.d
+++ b/gcc/d/dmd/root/string.d
@@ -1,9 +1,9 @@
 /**
  * Contains various string related functions.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/string.d, root/_string.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_string.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/string.d
diff --git a/gcc/d/dmd/root/stringtable.d b/gcc/d/dmd/root/stringtable.d
index 42b26e26c38..884a9f146a6 100644
--- a/gcc/d/dmd/root/stringtable.d
+++ b/gcc/d/dmd/root/stringtable.d
@@ -1,9 +1,9 @@
 /**
  * A specialized associative array with string keys stored in a variable length structure.
  *
- * Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:   Walter Bright, http://www.digitalmars.com
- * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:   Walter Bright, https://www.digitalmars.com
+ * License:   $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:    $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/stringtable.d, root/_stringtable.d)
  * Documentation:  https://dlang.org/phobos/dmd_root_stringtable.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/stringtable.d
@@ -284,7 +284,7 @@ private:
     size_t findSlot(hash_t hash, scope const(char)[] str) const @nogc nothrow pure
     {
         // quadratic probing using triangular numbers
-        // http://stackoverflow.com/questions/2348187/moving-from-linear-probing-to-quadratic-probing-hash-collisons/2349774#2349774
+        // https://stackoverflow.com/questions/2348187/moving-from-linear-probing-to-quadratic-probing-hash-collisons/2349774#2349774
         for (size_t i = hash & (table.length - 1), j = 1;; ++j)
         {
             const(StringValue!T)* sv;
diff --git a/gcc/d/dmd/utf.d b/gcc/d/dmd/root/utf.d
similarity index 97%
rename from gcc/d/dmd/utf.d
rename to gcc/d/dmd/root/utf.d
index 1125c212122..15838e9a068 100644
--- a/gcc/d/dmd/utf.d
+++ b/gcc/d/dmd/root/utf.d
@@ -1,15 +1,15 @@
 /**
  * Functions related to UTF encoding.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
- * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/utf.d, _utf.d)
- * Documentation:  https://dlang.org/phobos/dmd_utf.html
- * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/utf.d
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/utf.d, _utf.d)
+ * Documentation:  https://dlang.org/phobos/dmd_root_utf.html
+ * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/utf.d
  */
 
-module dmd.utf;
+module dmd.root.utf;
 
 nothrow pure @nogc:
 
diff --git a/gcc/d/dmd/safe.d b/gcc/d/dmd/safe.d
index 7eb3e235e41..bad071e34a5 100644
--- a/gcc/d/dmd/safe.d
+++ b/gcc/d/dmd/safe.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/function.html#function-safety, Function Safety)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/safe.d, _safe.d)
  * Documentation:  https://dlang.org/phobos/dmd_safe.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/safe.d
diff --git a/gcc/d/dmd/sapply.d b/gcc/d/dmd/sapply.d
index 018b0462c84..7314d5b5a0e 100644
--- a/gcc/d/dmd/sapply.d
+++ b/gcc/d/dmd/sapply.d
@@ -1,9 +1,9 @@
 /**
  * Provides a depth-first statement visitor.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/sparse.d, _sparse.d)
  * Documentation:  https://dlang.org/phobos/dmd_sapply.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/sapply.d
diff --git a/gcc/d/dmd/scope.h b/gcc/d/dmd/scope.h
index 4d8c0bbef18..a163e7577a2 100644
--- a/gcc/d/dmd/scope.h
+++ b/gcc/d/dmd/scope.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/scope.h
  */
 
diff --git a/gcc/d/dmd/semantic2.d b/gcc/d/dmd/semantic2.d
index c3fe7520175..f36cdc9c4bc 100644
--- a/gcc/d/dmd/semantic2.d
+++ b/gcc/d/dmd/semantic2.d
@@ -1,9 +1,9 @@
 /**
  * Performs the semantic2 stage, which deals with initializer expressions.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/semantic2.d, _semantic2.d)
  * Documentation:  https://dlang.org/phobos/dmd_semantic2.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/semantic2.d
@@ -56,11 +56,11 @@ import dmd.root.filename;
 import dmd.common.outbuffer;
 import dmd.root.rmem;
 import dmd.root.rootobject;
+import dmd.root.utf;
 import dmd.sideeffect;
 import dmd.statementsem;
 import dmd.staticassert;
 import dmd.tokens;
-import dmd.utf;
 import dmd.statement;
 import dmd.target;
 import dmd.templateparamsem;
diff --git a/gcc/d/dmd/semantic3.d b/gcc/d/dmd/semantic3.d
index 49b87d6bf47..7bcb7ec1dc0 100644
--- a/gcc/d/dmd/semantic3.d
+++ b/gcc/d/dmd/semantic3.d
@@ -1,9 +1,9 @@
 /**
  * Performs the semantic3 stage, which deals with function bodies.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/semantic3.d, _semantic3.d)
  * Documentation:  https://dlang.org/phobos/dmd_semantic3.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/semantic3.d
@@ -58,11 +58,11 @@ import dmd.root.filename;
 import dmd.common.outbuffer;
 import dmd.root.rmem;
 import dmd.root.rootobject;
+import dmd.root.utf;
 import dmd.sideeffect;
 import dmd.statementsem;
 import dmd.staticassert;
 import dmd.tokens;
-import dmd.utf;
 import dmd.semantic2;
 import dmd.statement;
 import dmd.target;
diff --git a/gcc/d/dmd/sideeffect.d b/gcc/d/dmd/sideeffect.d
index 99833b55a32..d36504948c0 100644
--- a/gcc/d/dmd/sideeffect.d
+++ b/gcc/d/dmd/sideeffect.d
@@ -1,9 +1,9 @@
 /**
  * Find side-effects of expressions.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/sideeffect.d, _sideeffect.d)
  * Documentation:  https://dlang.org/phobos/dmd_sideeffect.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/sideeffect.d
diff --git a/gcc/d/dmd/statement.d b/gcc/d/dmd/statement.d
index 91e3fe7bfeb..be568f58135 100644
--- a/gcc/d/dmd/statement.d
+++ b/gcc/d/dmd/statement.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/statement.html, Statements)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/statement.d, _statement.d)
  * Documentation:  https://dlang.org/phobos/dmd_statement.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/statement.d
@@ -72,7 +72,7 @@ TypeIdentifier getException()
 }
 
 /***********************************************************
- * Specification: http://dlang.org/spec/statement.html
+ * Specification: https://dlang.org/spec/statement.html
  */
 extern (C++) abstract class Statement : ASTNode
 {
diff --git a/gcc/d/dmd/statement.h b/gcc/d/dmd/statement.h
index 98b7bd318eb..dfb65a1847d 100644
--- a/gcc/d/dmd/statement.h
+++ b/gcc/d/dmd/statement.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/statement.h
  */
 
diff --git a/gcc/d/dmd/statement_rewrite_walker.d b/gcc/d/dmd/statement_rewrite_walker.d
index 2f6605c4354..b1f659d33ef 100644
--- a/gcc/d/dmd/statement_rewrite_walker.d
+++ b/gcc/d/dmd/statement_rewrite_walker.d
@@ -1,9 +1,9 @@
 /**
  * Provides a visitor for statements that allows rewriting the currently visited node.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/statement_rewrite_walker.d, _statement_rewrite_walker.d)
  * Documentation:  https://dlang.org/phobos/dmd_statement_rewrite_walker.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/statement_rewrite_walker.d
diff --git a/gcc/d/dmd/statementsem.d b/gcc/d/dmd/statementsem.d
index 91855ac05b6..faeba11446a 100644
--- a/gcc/d/dmd/statementsem.d
+++ b/gcc/d/dmd/statementsem.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/statement.html, Statements)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/statementsem.d, _statementsem.d)
  * Documentation:  https://dlang.org/phobos/dmd_statementsem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/statementsem.d
diff --git a/gcc/d/dmd/staticassert.d b/gcc/d/dmd/staticassert.d
index 984dc42fbab..7daf7cdcec1 100644
--- a/gcc/d/dmd/staticassert.d
+++ b/gcc/d/dmd/staticassert.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/version.html#static-assert, Static Assert)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/staticassert.d, _staticassert.d)
  * Documentation:  https://dlang.org/phobos/dmd_staticassert.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/staticassert.d
diff --git a/gcc/d/dmd/staticassert.h b/gcc/d/dmd/staticassert.h
index 8f880804454..5c00b464f64 100644
--- a/gcc/d/dmd/staticassert.h
+++ b/gcc/d/dmd/staticassert.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/staticassert.h
  */
 
diff --git a/gcc/d/dmd/staticcond.d b/gcc/d/dmd/staticcond.d
index 6d74ad29a5a..6ff166a44e6 100644
--- a/gcc/d/dmd/staticcond.d
+++ b/gcc/d/dmd/staticcond.d
@@ -1,9 +1,9 @@
 /**
  * Lazily evaluate static conditions for `static if`, `static assert` and template constraints.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/staticcond.d, _staticcond.d)
  * Documentation:  https://dlang.org/phobos/dmd_staticcond.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/staticcond.d
diff --git a/gcc/d/dmd/stmtstate.d b/gcc/d/dmd/stmtstate.d
index bb13d7c0d06..3e26b8f9bd5 100644
--- a/gcc/d/dmd/stmtstate.d
+++ b/gcc/d/dmd/stmtstate.d
@@ -1,9 +1,9 @@
 /**
  * Used to help transform statement AST into flow graph.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/stmtstate.d, _stmtstate.d)
  * Documentation: https://dlang.org/phobos/dmd_stmtstate.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/stmtstate.d
diff --git a/gcc/d/dmd/target.d b/gcc/d/dmd/target.d
index 8e434a373d2..619304db927 100644
--- a/gcc/d/dmd/target.d
+++ b/gcc/d/dmd/target.d
@@ -15,9 +15,9 @@
  * - $(LINK2 https://github.com/ldc-developers/ldc, LDC repository)
  * - $(LINK2 https://github.com/D-Programming-GDC/gcc, GDC repository)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/target.d, _target.d)
  * Documentation:  https://dlang.org/phobos/dmd_target.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/target.d
@@ -74,7 +74,7 @@ extern (C++) struct Target
         /* These are mutually exclusive; one and only one is set.
          * Match spelling and casing of corresponding version identifiers
          */
-        Freestanding = 0,
+        none         = 0,
         linux        = 1,
         Windows      = 2,
         OSX          = 4,
diff --git a/gcc/d/dmd/target.h b/gcc/d/dmd/target.h
index 6348d93b67d..9c879de293a 100644
--- a/gcc/d/dmd/target.h
+++ b/gcc/d/dmd/target.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 2013-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 2013-2022 by The D Language Foundation, All Rights Reserved
  * written by Iain Buclaw
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/target.h
  */
 
diff --git a/gcc/d/dmd/template.h b/gcc/d/dmd/template.h
index 69cc84f6573..95cd349639c 100644
--- a/gcc/d/dmd/template.h
+++ b/gcc/d/dmd/template.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/template.h
  */
 
diff --git a/gcc/d/dmd/templateparamsem.d b/gcc/d/dmd/templateparamsem.d
index b4627424856..e093260adc7 100644
--- a/gcc/d/dmd/templateparamsem.d
+++ b/gcc/d/dmd/templateparamsem.d
@@ -1,9 +1,9 @@
 /**
  * Semantic analysis of template parameters.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/templateparamsem.d, _templateparamsem.d)
  * Documentation:  https://dlang.org/phobos/dmd_templateparamsem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/templateparamsem.d
diff --git a/gcc/d/dmd/tokens.d b/gcc/d/dmd/tokens.d
index e5b05d38a45..5830dbbf943 100644
--- a/gcc/d/dmd/tokens.d
+++ b/gcc/d/dmd/tokens.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/lex.html#tokens, Tokens)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/tokens.d, _tokens.d)
  * Documentation:  https://dlang.org/phobos/dmd_tokens.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/tokens.d
@@ -21,7 +21,7 @@ import dmd.identifier;
 import dmd.root.ctfloat;
 import dmd.common.outbuffer;
 import dmd.root.rmem;
-import dmd.utf;
+import dmd.root.utf;
 
 enum TOK : ubyte
 {
diff --git a/gcc/d/dmd/tokens.h b/gcc/d/dmd/tokens.h
index e095aa6b91a..0a00ae7fc98 100644
--- a/gcc/d/dmd/tokens.h
+++ b/gcc/d/dmd/tokens.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/tokens.h
  */
 
diff --git a/gcc/d/dmd/traits.d b/gcc/d/dmd/traits.d
index 7b9a8c8fdff..ae8ab9b49fb 100644
--- a/gcc/d/dmd/traits.d
+++ b/gcc/d/dmd/traits.d
@@ -3,9 +3,9 @@
  *
  * Specification: $(LINK2 https://dlang.org/spec/traits.html, Traits)
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/traits.d, _traits.d)
  * Documentation:  https://dlang.org/phobos/dmd_traits.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/traits.d
diff --git a/gcc/d/dmd/typesem.d b/gcc/d/dmd/typesem.d
index b8c43174f4a..34b363da687 100644
--- a/gcc/d/dmd/typesem.d
+++ b/gcc/d/dmd/typesem.d
@@ -1,9 +1,9 @@
 /**
  * Semantic analysis for D types.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/typesem.d, _typesem.d)
  * Documentation:  https://dlang.org/phobos/dmd_typesem.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/typesem.d
@@ -22,7 +22,6 @@ import dmd.arrayop;
 import dmd.arraytypes;
 import dmd.astcodegen;
 import dmd.astenums;
-import dmd.complex;
 import dmd.dcast;
 import dmd.dclass;
 import dmd.declaration;
@@ -52,6 +51,7 @@ import dmd.mtype;
 import dmd.objc;
 import dmd.opover;
 import dmd.parse;
+import dmd.root.complex;
 import dmd.root.ctfloat;
 import dmd.root.rmem;
 import dmd.common.outbuffer;
@@ -161,7 +161,7 @@ private void resolveTupleIndex(const ref Loc loc, Scope* sc, Dsymbol s, out Expr
     const(uinteger_t) d = eindex.toUInteger();
     if (d >= tup.objects.dim)
     {
-        .error(loc, "tuple index `%llu` exceeds length %zu", d, tup.objects.dim);
+        .error(loc, "tuple index `%llu` exceeds length %llu", d, cast(ulong)tup.objects.dim);
         pt = Type.terror;
         return;
     }
diff --git a/gcc/d/dmd/typinf.d b/gcc/d/dmd/typinf.d
index d05af61ce6f..21447ae9a3d 100644
--- a/gcc/d/dmd/typinf.d
+++ b/gcc/d/dmd/typinf.d
@@ -1,9 +1,9 @@
 /**
  * Generate `TypeInfo` objects, which are needed for run-time introspection of types.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/typeinf.d, _typeinf.d)
  * Documentation:  https://dlang.org/phobos/dmd_typinf.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/typinf.d
diff --git a/gcc/d/dmd/utils.d b/gcc/d/dmd/utils.d
index 6cd5d20f6f7..f8e7e48365f 100644
--- a/gcc/d/dmd/utils.d
+++ b/gcc/d/dmd/utils.d
@@ -1,9 +1,9 @@
 /**
  * This module defines some utility functions for DMD.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/utils.d, _utils.d)
  * Documentation:  https://dlang.org/phobos/dmd_utils.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/utils.d
diff --git a/gcc/d/dmd/version.h b/gcc/d/dmd/version.h
index 6c5e2f0f236..afc455784aa 100644
--- a/gcc/d/dmd/version.h
+++ b/gcc/d/dmd/version.h
@@ -1,10 +1,10 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
+ * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
  * written by Walter Bright
- * http://www.digitalmars.com
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/version.h
  */
 
diff --git a/gcc/d/dmd/visitor.d b/gcc/d/dmd/visitor.d
index 8b9c01253de..e6dfa1173cf 100644
--- a/gcc/d/dmd/visitor.d
+++ b/gcc/d/dmd/visitor.d
@@ -1,9 +1,9 @@
 /**
  * Provides a visitor class visiting all AST nodes present in the compiler.
  *
- * Copyright:   Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
- * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
+ * Copyright:   Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved
+ * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
+ * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/visitor.d, _visitor.d)
  * Documentation:  https://dlang.org/phobos/dmd_visitor.html
  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/visitor.d
diff --git a/gcc/d/dmd/visitor.h b/gcc/d/dmd/visitor.h
index e61f16d7c8b..5bad56b7017 100644
--- a/gcc/d/dmd/visitor.h
+++ b/gcc/d/dmd/visitor.h
@@ -1,9 +1,9 @@
 
 /* Compiler implementation of the D programming language
- * Copyright (C) 2013-2021 by The D Language Foundation, All Rights Reserved
- * http://www.digitalmars.com
+ * Copyright (C) 2013-2022 by The D Language Foundation, All Rights Reserved
+ * https://www.digitalmars.com
  * Distributed under the Boost Software License, Version 1.0.
- * http://www.boost.org/LICENSE_1_0.txt
+ * https://www.boost.org/LICENSE_1_0.txt
  * https://github.com/dlang/dmd/blob/master/src/dmd/visitor.h
  */
 
diff --git a/gcc/testsuite/gdc.test/compilable/99bottles.d b/gcc/testsuite/gdc.test/compilable/99bottles.d
index 09360a8bec2..5341a49f766 100644
--- a/gcc/testsuite/gdc.test/compilable/99bottles.d
+++ b/gcc/testsuite/gdc.test/compilable/99bottles.d
@@ -1,5 +1,5 @@
 // written by Don Clugston:
-//    http://www.digitalmars.com/d/archives/digitalmars/D/announce/4374.html
+//    https://www.digitalmars.com/d/archives/digitalmars/D/announce/4374.html
 //    http://www.99-bottles-of-beer.net/language-d-1212.html
 
 // Generates the "99 bottles of beer" song at compile time,
diff --git a/gcc/testsuite/gdc.test/compilable/art4769.d b/gcc/testsuite/gdc.test/compilable/art4769.d
index 34adcda927b..dfffe7745ac 100644
--- a/gcc/testsuite/gdc.test/compilable/art4769.d
+++ b/gcc/testsuite/gdc.test/compilable/art4769.d
@@ -1,4 +1,4 @@
-// http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.bugs&article_id=4769
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/4769.html
 
 // COMPILED_IMPORTS: imports/art4769a.d imports/art4769b.d
 // PERMUTE_ARGS:
diff --git a/gcc/testsuite/gdc.test/compilable/test69.d b/gcc/testsuite/gdc.test/compilable/test69.d
index 66662dcd5f2..395a49f7912 100644
--- a/gcc/testsuite/gdc.test/compilable/test69.d
+++ b/gcc/testsuite/gdc.test/compilable/test69.d
@@ -1,7 +1,7 @@
 // PERMUTE_ARGS:
 
 // ICE(expression.c) DMD 0.110
-// http://www.digitalmars.com/d/archives/digitalmars/D/bugs/2966.html
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/2966.html
 
 string str255() { return "\255"; }
 void fromFail49()
diff --git a/gcc/testsuite/gdc.test/fail_compilation/fail11.d b/gcc/testsuite/gdc.test/fail_compilation/fail11.d
index 8ba05df2bf1..9a5a815afcd 100644
--- a/gcc/testsuite/gdc.test/fail_compilation/fail11.d
+++ b/gcc/testsuite/gdc.test/fail_compilation/fail11.d
@@ -5,7 +5,7 @@ fail_compilation/fail11.d(12): Error: `int*` has no effect
 ---
 */
 
-// http://forum.dlang.org/thread/c738o9$1p7i$1@digitaldaemon.com
+// https://forum.dlang.org/thread/c738o9$1p7i$1@digitaldaemon.com
 
 void main()
 {
diff --git a/gcc/testsuite/gdc.test/fail_compilation/fail15.d b/gcc/testsuite/gdc.test/fail_compilation/fail15.d
index 0386b9a2675..cd184851f00 100644
--- a/gcc/testsuite/gdc.test/fail_compilation/fail15.d
+++ b/gcc/testsuite/gdc.test/fail_compilation/fail15.d
@@ -6,7 +6,7 @@ fail_compilation/fail15.d(24): Error: cannot use `[]` operator on expression of
 */
 /*
 Segfault on DMD 0.095
-http://www.digitalmars.com/d/archives/digitalmars/D/bugs/926.html
+https://www.digitalmars.com/d/archives/digitalmars/D/bugs/926.html
 */
 module test;
 
diff --git a/gcc/testsuite/gdc.test/fail_compilation/fail35.d b/gcc/testsuite/gdc.test/fail_compilation/fail35.d
index c35dfe11fc2..4f47a62d4a0 100644
--- a/gcc/testsuite/gdc.test/fail_compilation/fail35.d
+++ b/gcc/testsuite/gdc.test/fail_compilation/fail35.d
@@ -5,7 +5,7 @@ fail_compilation/fail35.d(15): Error: variable `t` cannot be read at compile tim
 ---
 */
 
-// http://www.digitalmars.com/d/archives/digitalmars/D/bugs/2372.html
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/2372.html
 // allegedly crashes, but cannot reproduce
 
 void main()
diff --git a/gcc/testsuite/gdc.test/fail_compilation/fail73.d b/gcc/testsuite/gdc.test/fail_compilation/fail73.d
index b9b480d6cda..02422017205 100644
--- a/gcc/testsuite/gdc.test/fail_compilation/fail73.d
+++ b/gcc/testsuite/gdc.test/fail_compilation/fail73.d
@@ -6,7 +6,7 @@ fail_compilation/fail73.d(20): Error: `case` not in `switch` statement
 */
 
 // segfault DMD 0.120
-// http://www.digitalmars.com/d/archives/digitalmars/D/bugs/4634.html
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/4634.html
 
 void main()
 {
diff --git a/gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d b/gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
index df169e198cf..22cf39241f8 100644
--- a/gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
+++ b/gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
@@ -15,14 +15,18 @@ fail_compilation/misc_parser_err_cov1.d(35): Error: `key:value` expected for ass
 fail_compilation/misc_parser_err_cov1.d(36): Error: basic type expected, not `;`
 fail_compilation/misc_parser_err_cov1.d(36): Error: `{ members }` expected for anonymous class
 fail_compilation/misc_parser_err_cov1.d(38): Error: template argument expected following `!`
-fail_compilation/misc_parser_err_cov1.d(38): Error: found `if` when expecting `)`
-fail_compilation/misc_parser_err_cov1.d(38): Error: found `)` instead of statement
+fail_compilation/misc_parser_err_cov1.d(38): Error: missing closing `)` after `if (parseShift!()`
+fail_compilation/misc_parser_err_cov1.d(38): Error: found `)` when expecting `(`
+fail_compilation/misc_parser_err_cov1.d(39): Error: missing closing `)` after `if (`
 fail_compilation/misc_parser_err_cov1.d(39): Error: identifier expected following `(type)`.
 fail_compilation/misc_parser_err_cov1.d(39): Error: expression expected, not `;`
 fail_compilation/misc_parser_err_cov1.d(40): Error: semicolon expected following auto declaration, not `auto`
 fail_compilation/misc_parser_err_cov1.d(40): Error: identifier or `new` expected following `.`, not `+`
-fail_compilation/misc_parser_err_cov1.d(41): Error: declaration expected, not `(`
-fail_compilation/misc_parser_err_cov1.d(42): Error: unrecognized declaration
+fail_compilation/misc_parser_err_cov1.d(41): Error: identifier or new keyword expected following `(...)`.
+fail_compilation/misc_parser_err_cov1.d(41): Error: found `.` when expecting `;` following statement
+fail_compilation/misc_parser_err_cov1.d(41): Error: expression expected, not `;`
+fail_compilation/misc_parser_err_cov1.d(42): Error: found `}` when expecting `;` following statement
+fail_compilation/misc_parser_err_cov1.d(43): Error: found `End of File` when expecting `}` following compound statement
 ---
 */
 module misc_parser_err_cov1;
diff --git a/gcc/testsuite/gdc.test/fail_compilation/parseStc.d b/gcc/testsuite/gdc.test/fail_compilation/parseStc.d
index e0ce2c321b4..c9c42882438 100644
--- a/gcc/testsuite/gdc.test/fail_compilation/parseStc.d
+++ b/gcc/testsuite/gdc.test/fail_compilation/parseStc.d
@@ -1,9 +1,10 @@
 /*
 TEST_OUTPUT:
 ---
-fail_compilation/parseStc.d(11): Error: found `;` when expecting `)`
-fail_compilation/parseStc.d(11): Error: found `)` when expecting `;` following statement
-fail_compilation/parseStc.d(12): Error: redundant attribute `const`
+fail_compilation/parseStc.d(12): Error: missing closing `)` after `if (x`
+fail_compilation/parseStc.d(12): Error: use `{ }` for an empty statement, not `;`
+fail_compilation/parseStc.d(12): Error: found `)` when expecting `;` following statement
+fail_compilation/parseStc.d(13): Error: redundant attribute `const`
 ---
 */
 void test1()
@@ -15,9 +16,9 @@ void test1()
 /*
 TEST_OUTPUT:
 ---
-fail_compilation/parseStc.d(25): Error: redundant attribute `const`
 fail_compilation/parseStc.d(26): Error: redundant attribute `const`
-fail_compilation/parseStc.d(27): Error: conflicting attribute `immutable`
+fail_compilation/parseStc.d(27): Error: redundant attribute `const`
+fail_compilation/parseStc.d(28): Error: conflicting attribute `immutable`
 ---
 */
 void test2()
@@ -30,8 +31,8 @@ void test2()
 /*
 TEST_OUTPUT:
 ---
-fail_compilation/parseStc.d(37): Error: redundant attribute `const`
 fail_compilation/parseStc.d(38): Error: redundant attribute `const`
+fail_compilation/parseStc.d(39): Error: redundant attribute `const`
 ---
 */
 struct S3 { const const test3() {} }
diff --git a/gcc/testsuite/gdc.test/runnable/mars1.d b/gcc/testsuite/gdc.test/runnable/mars1.d
index 30aa9503b09..c981334a5b1 100644
--- a/gcc/testsuite/gdc.test/runnable/mars1.d
+++ b/gcc/testsuite/gdc.test/runnable/mars1.d
@@ -1923,7 +1923,7 @@ void test20050()
 
 ////////////////////////////////////////////////////////////////////////
 
-// http://github.com/dlang/dmd/pull/11238
+// https://github.com/dlang/dmd/pull/11238
 
 int testCpStatic1(int y)
 {
@@ -1960,7 +1960,7 @@ void test7()
 
 ////////////////////////////////////////////////////////////////////////
 
-// http://github.com/dlang/dmd/pull/11388
+// https://github.com/dlang/dmd/pull/11388
 
 ushort byteswap(ushort x) pure
 {
diff --git a/gcc/testsuite/gdc.test/runnable/template1.d b/gcc/testsuite/gdc.test/runnable/template1.d
index dde9213deb5..ed237d86732 100644
--- a/gcc/testsuite/gdc.test/runnable/template1.d
+++ b/gcc/testsuite/gdc.test/runnable/template1.d
@@ -1554,7 +1554,7 @@ void test64()
 }
 
 /******************************************/
-// http://www.digitalmars.com/d/archives/28052.html
+// https://www.digitalmars.com/d/archives/28052.html
 
 alias int value_type;
 
@@ -1923,7 +1923,7 @@ specialization:: first int
 
 
 /******************************************/
-// http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.bugs&artnum=2117
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/2117.html
 
 class Conversion(T,U){
         alias char Small;
diff --git a/gcc/testsuite/gdc.test/runnable/template2.d b/gcc/testsuite/gdc.test/runnable/template2.d
index fe08a6c0738..234cb71400a 100644
--- a/gcc/testsuite/gdc.test/runnable/template2.d
+++ b/gcc/testsuite/gdc.test/runnable/template2.d
@@ -1,5 +1,5 @@
 // original post to the D newsgroup:
-//    http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=D&artnum=10554&header
+//    https://www.digitalmars.com/d/archives/10510.html#N10554
 // Test to manipulate 3D vectors, in D!
 // by Sean L Palmer (seanpalmer@directvinternet.com)
 // This code is released without any warranty.  Use at your own risk.
diff --git a/gcc/testsuite/gdc.test/runnable/template9.d b/gcc/testsuite/gdc.test/runnable/template9.d
index 63620dd9254..cb3de5bc6f0 100644
--- a/gcc/testsuite/gdc.test/runnable/template9.d
+++ b/gcc/testsuite/gdc.test/runnable/template9.d
@@ -4706,7 +4706,7 @@ void test14735()
 {
     char[64] buf;
 
-    // Supported from 2.063: (http://dlang.org/changelog#implicitarraycast)
+    // Supported from 2.063: (https://dlang.org/changelog/2.063.html#implicitarraycast)
     assert(indexOf14735a(buf[0..32], '\0') == 2);
     assert(indexOf14735b(buf[0..32], '\0') == 2);
 
diff --git a/gcc/testsuite/gdc.test/runnable/test12.d b/gcc/testsuite/gdc.test/runnable/test12.d
index dac4ed647b0..01c74863937 100644
--- a/gcc/testsuite/gdc.test/runnable/test12.d
+++ b/gcc/testsuite/gdc.test/runnable/test12.d
@@ -832,7 +832,7 @@ void test38()
 
 
 /**************************************/
-// http://www.digitalmars.com/d/archives/digitalmars/D/bugs/2409.html
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/2409.html
 
 class C39
 {
diff --git a/gcc/testsuite/gdc.test/runnable/test15.d b/gcc/testsuite/gdc.test/runnable/test15.d
index 222742c4080..70e3a8255e5 100644
--- a/gcc/testsuite/gdc.test/runnable/test15.d
+++ b/gcc/testsuite/gdc.test/runnable/test15.d
@@ -515,7 +515,7 @@ void test30()
 
 
 /************************************/
-// http://www.digitalmars.com/d/archives/18204.html
+// https://www.digitalmars.com/d/archives/18204.html
 // DMD0.050 also failed with alias.
 
 alias int recls_bool_t;
diff --git a/gcc/testsuite/gdc.test/runnable/test20855.d b/gcc/testsuite/gdc.test/runnable/test20855.d
index 7e43ec801a7..30152fe3914 100644
--- a/gcc/testsuite/gdc.test/runnable/test20855.d
+++ b/gcc/testsuite/gdc.test/runnable/test20855.d
@@ -1,3 +1,4 @@
+// PERMUTE_ARGS: -O
 // https://issues.dlang.org/show_bug.cgi?id=20855
 
 string exp()
diff --git a/gcc/testsuite/gdc.test/runnable/test22.d b/gcc/testsuite/gdc.test/runnable/test22.d
index 1d806d641ab..38a9cc367e5 100644
--- a/gcc/testsuite/gdc.test/runnable/test22.d
+++ b/gcc/testsuite/gdc.test/runnable/test22.d
@@ -16,7 +16,7 @@ extern(C)
 
 /*************************************/
 
-// http://www.digitalmars.com/d/archives/digitalmars/D/bugs/4766.html
+// https://www.digitalmars.com/d/archives/digitalmars/D/bugs/4766.html
 // Only with -O
 
 real randx()
diff --git a/gcc/testsuite/gdc.test/runnable/testarray.d b/gcc/testsuite/gdc.test/runnable/testarray.d
index 4784f47b5cb..02bf77177e7 100644
--- a/gcc/testsuite/gdc.test/runnable/testarray.d
+++ b/gcc/testsuite/gdc.test/runnable/testarray.d
@@ -3,7 +3,7 @@
 
 import core.memory;
 
-// see http://forum.dlang.org/thread/4BB6296E.6050506@digitalmars.com for more info
+// see https://forum.dlang.org/thread/4BB6296E.6050506@digitalmars.com for more info
 
 // failure case for bug fixed by druntime rev 282
 // how it works:
diff --git a/gcc/testsuite/gdc.test/runnable/testcontracts.d b/gcc/testsuite/gdc.test/runnable/testcontracts.d
index 786969104f5..ba0dc69b9d0 100644
--- a/gcc/testsuite/gdc.test/runnable/testcontracts.d
+++ b/gcc/testsuite/gdc.test/runnable/testcontracts.d
@@ -239,7 +239,7 @@ void test6()
 /*******************************************/
 
 /+
-// http://d.puremagic.com/issues/show_bug.cgi?id=3722
+// https://issues.dlang.org/show_bug.cgi?id=3722
 
 class Bug3722A
 {
diff --git a/gcc/testsuite/gdc.test/runnable/testsafe.d b/gcc/testsuite/gdc.test/runnable/testsafe.d
index 40496f5b24e..11813a017b2 100644
--- a/gcc/testsuite/gdc.test/runnable/testsafe.d
+++ b/gcc/testsuite/gdc.test/runnable/testsafe.d
@@ -1,6 +1,6 @@
 // PERMUTE_ARGS:
 
-//http://d.puremagic.com/issues/show_bug.cgi?id=5415
+//https://issues.dlang.org/show_bug.cgi?id=5415
 
 @safe
 void pointercast()
@@ -31,7 +31,7 @@ void pointercast2()
 
 @safe
 void pointerarithmetic()
-{//http://d.puremagic.com/issues/show_bug.cgi?id=4132
+{//https://issues.dlang.org/show_bug.cgi?id=4132
     void* a;
     int b;
 
@@ -273,7 +273,7 @@ void use__gshared()
 
 @safe
 void voidinitializers()
-{//http://d.puremagic.com/issues/show_bug.cgi?id=4885
+{//https://issues.dlang.org/show_bug.cgi?id=4885
     static assert(!__traits(compiles, () @safe { uint* ptr = void; } ));
     static assert( __traits(compiles, () @safe { uint i = void; } ));
     static assert( __traits(compiles, () @safe { uint[2] a = void; } ));
@@ -290,14 +290,14 @@ void voidinitializers()
 
 @safe
 void pointerindex()
-{//http://d.puremagic.com/issues/show_bug.cgi?id=9195
+{//https://issues.dlang.org/show_bug.cgi?id=9195
     static assert(!__traits(compiles, () @safe { int* p; auto a = p[30]; }));
     static assert( __traits(compiles, () @safe{ int* p; auto a = p[0]; }));
 }
 
 @safe
 void basiccast()
-{//http://d.puremagic.com/issues/show_bug.cgi?id=5088
+{//https://issues.dlang.org/show_bug.cgi?id=5088
     auto a = cast(int)cast(const int)1;
     auto b = cast(real)cast(const int)1;
     auto c = cast(real)cast(const real)2.0;
diff --git a/gcc/testsuite/gdc.test/runnable/traits_child.d b/gcc/testsuite/gdc.test/runnable/traits_child.d
index 056b8f120ac..bea85115ae6 100644
--- a/gcc/testsuite/gdc.test/runnable/traits_child.d
+++ b/gcc/testsuite/gdc.test/runnable/traits_child.d
@@ -64,7 +64,7 @@ alias cm = C.m;
 alias cmset = C.m.set;
 
 
-// adapted from http://thecybershadow.net/d/dconf2017/#/21
+// adapted from https://thecybershadow.net/d/dconf2017/#/21
 struct S { string a, b, c; }
 
 static string printField(alias field)()
diff --git a/gcc/testsuite/gdc.test/runnable/xtest46.d b/gcc/testsuite/gdc.test/runnable/xtest46.d
index 4fe6b00eba7..a66e00f0c5d 100644
--- a/gcc/testsuite/gdc.test/runnable/xtest46.d
+++ b/gcc/testsuite/gdc.test/runnable/xtest46.d
@@ -5063,7 +5063,7 @@ class Bar6847 : Foo6847
 }
 
 /***************************************************/
-// http://d.puremagic.com/issues/show_bug.cgi?id=6488
+// https://issues.dlang.org/show_bug.cgi?id=6488
 
 struct TickDuration
 {
@@ -6727,14 +6727,14 @@ void test9477()
     static bool isEq (T1, T2)(T1 s1, T2 s2) { return s1 == s2; }
     static bool isNeq(T1, T2)(T1 s1, T2 s2) { return s1 != s2; }
 
-    // Must be outside the loop due to http://d.puremagic.com/issues/show_bug.cgi?id=9748
+    // Must be outside the loop due to https://issues.dlang.org/show_bug.cgi?id=9748
     int order;
-    // Must be outside the loop due to http://d.puremagic.com/issues/show_bug.cgi?id=9756
+    // Must be outside the loop due to https://issues.dlang.org/show_bug.cgi?id=9756
     auto checkOrder(bool dyn, uint expected)()
     {
         assert(order==expected);
         order++;
-        // Use temporary ("v") to work around http://d.puremagic.com/issues/show_bug.cgi?id=9402
+        // Use temporary ("v") to work around https://issues.dlang.org/show_bug.cgi?id=9402
         auto v = cast(Select9477!(dyn, string, char[1]))"a";
         return v;
     }
@@ -6742,7 +6742,7 @@ void test9477()
     foreach (b1; Tuple9477!(false, true))
         foreach (b2; Tuple9477!(false, true))
         {
-            version (D_PIC) {} else version (D_PIE) {}  else // Work around http://d.puremagic.com/issues/show_bug.cgi?id=9754
+            version (D_PIC) {} else version (D_PIE) {}  else // Work around https://issues.dlang.org/show_bug.cgi?id=9754
             {
                 assert( isEq (cast(Select9477!(b1, string, char[0]))"" , cast(Select9477!(b2, string, char[0]))""  ));
                 assert(!isNeq(cast(Select9477!(b1, string, char[0]))"" , cast(Select9477!(b2, string, char[0]))""  ));
diff --git a/libphobos/libdruntime/MERGE b/libphobos/libdruntime/MERGE
index 70f7ff596a8..3aa798a543c 100644
--- a/libphobos/libdruntime/MERGE
+++ b/libphobos/libdruntime/MERGE
@@ -1,4 +1,4 @@
-fd9a45448244fb9dd4326520ad8526c540895eb0
+759e60231a12482a1e1df5f891964e270dae0a1b
 
 The first line of this file holds the git revision number of the last
 merge done from the dlang/druntime repository.
diff --git a/libphobos/src/MERGE b/libphobos/src/MERGE
index b517749b542..b60fa170c4c 100644
--- a/libphobos/src/MERGE
+++ b/libphobos/src/MERGE
@@ -1,4 +1,4 @@
-495e835c2da47606142ff24c85de707e3b955a9a
+4687883231eba3bda7691321f2af107fdb3d0a44
 
 The first line of this file holds the git revision number of the last
 merge done from the dlang/phobos repository.
diff --git a/libphobos/src/std/algorithm/mutation.d b/libphobos/src/std/algorithm/mutation.d
index 22b7b98c229..b0e77076812 100644
--- a/libphobos/src/std/algorithm/mutation.d
+++ b/libphobos/src/std/algorithm/mutation.d
@@ -866,6 +866,9 @@ if (isInputRange!InputRange
 Initializes all elements of `range` with their `.init` value.
 Assumes that the elements of the range are uninitialized.
 
+This function is unavailable if `T` is a `struct` and  `T.this()` is annotated
+with `@disable`.
+
 Params:
         range = An
                 $(REF_ALTTEXT input range, isInputRange, std,range,primitives)
@@ -874,10 +877,11 @@ Params:
 
 See_Also:
         $(LREF fill)
-        $(LREF uninitializeFill)
+        $(LREF uninitializedFill)
  */
 void initializeAll(Range)(Range range)
-if (isInputRange!Range && hasLvalueElements!Range && hasAssignableElements!Range)
+if (isInputRange!Range && hasLvalueElements!Range && hasAssignableElements!Range
+    && __traits(compiles, { static ElementType!Range _; }))
 {
     import core.stdc.string : memset, memcpy;
     import std.traits : hasElaborateAssign, isDynamicArray;
@@ -1037,6 +1041,18 @@ if (is(Range == char[]) || is(Range == wchar[]))
     assert(xs[1].x == 3);
 }
 
+// https://issues.dlang.org/show_bug.cgi?id=22105
+@system unittest
+{
+    struct NoDefaultCtor
+    {
+        @disable this();
+    }
+
+    NoDefaultCtor[1] array = void;
+    static assert(!__traits(compiles, array[].initializeAll));
+}
+
 // move
 /**
 Moves `source` into `target`, via a destructive copy when necessary.
diff --git a/libphobos/src/std/container/array.d b/libphobos/src/std/container/array.d
index 63dc86403ec..08f9ead196e 100644
--- a/libphobos/src/std/container/array.d
+++ b/libphobos/src/std/container/array.d
@@ -428,8 +428,6 @@ if (!is(immutable T == immutable bool))
 
         @property void length(size_t newLength)
         {
-            import std.algorithm.mutation : initializeAll;
-
             if (length >= newLength)
             {
                 // shorten
@@ -440,10 +438,22 @@ if (!is(immutable T == immutable bool))
                 _payload = _payload.ptr[0 .. newLength];
                 return;
             }
-            immutable startEmplace = length;
-            reserve(newLength);
-            initializeAll(_payload.ptr[startEmplace .. newLength]);
-            _payload = _payload.ptr[0 .. newLength];
+
+            static if (__traits(compiles, { static T _; }))
+            {
+                import std.algorithm.mutation : initializeAll;
+
+                immutable startEmplace = length;
+                reserve(newLength);
+                initializeAll(_payload.ptr[startEmplace .. newLength]);
+                _payload = _payload.ptr[0 .. newLength];
+            }
+            else
+            {
+                assert(0, "Cannot add elements to array because `" ~
+                    fullyQualifiedName!T ~ ".this()` is annotated with " ~
+                    "`@disable`.");
+            }
         }
 
         @property size_t capacity() const
@@ -901,12 +911,16 @@ if (!is(immutable T == immutable bool))
     /**
      * Sets the number of elements in the array to `newLength`. If `newLength`
      * is greater than `length`, the new elements are added to the end of the
-     * array and initialized with `T.init`.
+     * array and initialized with `T.init`. If `T` is a `struct` whose default
+     * constructor is annotated with `@disable`, `newLength` must be lower than
+     * or equal to `length`.
      *
      * Complexity:
      * Guaranteed $(BIGOH abs(length - newLength)) if `capacity >= newLength`.
      * If `capacity < newLength` the worst case is $(BIGOH newLength).
      *
+     * Precondition: `__traits(compiles, { static T _; }) || newLength <= length`
+     *
      * Postcondition: `length == newLength`
      */
     @property void length(size_t newLength)
@@ -1708,6 +1722,23 @@ if (!is(immutable T == immutable bool))
     assert(equal(a[], [1,2,3,4,5,6,7,8]));
 }
 
+// https://issues.dlang.org/show_bug.cgi?id=22105
+@system unittest
+{
+    import core.exception : AssertError;
+    import std.exception : assertThrown, assertNotThrown;
+
+    struct NoDefaultCtor
+    {
+        int i;
+        @disable this();
+        this(int j) { i = j; }
+    }
+
+    auto array = Array!NoDefaultCtor([NoDefaultCtor(1), NoDefaultCtor(2)]);
+    assertNotThrown!AssertError(array.length = 1);
+    assertThrown!AssertError(array.length = 5);
+}
 
 ////////////////////////////////////////////////////////////////////////////////
 // Array!bool
diff --git a/libphobos/src/std/conv.d b/libphobos/src/std/conv.d
index d9db9b08d6b..98df7fd1ccf 100644
--- a/libphobos/src/std/conv.d
+++ b/libphobos/src/std/conv.d
@@ -2377,7 +2377,7 @@ Throws:
     A $(LREF ConvException) If an overflow occurred during conversion or
     if no character of the input was meaningfully converted.
 */
-auto parse(Target, Source, Flag!"doCount" doCount = No.doCount)(ref Source s)
+auto parse(Target, Source, Flag!"doCount" doCount = No.doCount)(ref scope Source s)
 if (isSomeChar!(ElementType!Source) &&
     isIntegral!Target && !is(Target == enum))
 {
@@ -2482,7 +2482,7 @@ if (isSomeChar!(ElementType!Source) &&
                 v = -v;
 
             static if (isNarrowString!Source)
-                s = cast(Source) source;
+                s = s[$-source.length..$];
 
             static if (doCount)
             {
diff --git a/libphobos/src/std/format/internal/read.d b/libphobos/src/std/format/internal/read.d
index 102e59fcd5c..9130499081c 100644
--- a/libphobos/src/std/format/internal/read.d
+++ b/libphobos/src/std/format/internal/read.d
@@ -228,26 +228,8 @@ if (isInputRange!Range && is(StringTypeOf!T) && !isAggregateType!T && !is(T == e
 }
 
 T unformatValueImpl(T, Range, Char)(ref Range input, scope const ref FormatSpec!Char fmt)
-if (isInputRange!Range && isArray!T && !is(StringTypeOf!T) && !isAggregateType!T
-    && !is(T == enum))
-{
-    import std.conv : parse, text;
-    import std.format : enforceFmt;
-
-    const spec = fmt.spec;
-    if (spec == '(')
-    {
-        return unformatRange!T(input, fmt);
-    }
-
-    enforceFmt(spec == 's',
-               text("Wrong unformat specifier '%", spec , "' for ", T.stringof));
-
-    return parse!T(input);
-}
-
-T unformatValueImpl(T, Range, Char)(ref Range input, scope const ref FormatSpec!Char fmt)
-if (isInputRange!Range && isAssociativeArray!T && !is(T == enum))
+if (isInputRange!Range && !is(StringTypeOf!T) && !isAggregateType!T
+    && (isArray!T || isAssociativeArray!T || is(T == enum)))
 {
     import std.conv : parse, text;
     import std.format : enforceFmt;
diff --git a/libphobos/src/std/format/read.d b/libphobos/src/std/format/read.d
index 0de88183fb2..b3d8d1f6c3f 100644
--- a/libphobos/src/std/format/read.d
+++ b/libphobos/src/std/format/read.d
@@ -719,3 +719,16 @@ T unformatValue(T, Range, Char)(ref Range input, scope const ref FormatSpec!Char
     int b;
     assertThrown(formattedRead(str, "%s %d-%s", &a, &b, &c));
 }
+
+// https://issues.dlang.org/show_bug.cgi?id=18051
+@safe pure unittest
+{
+    import std.format : format;
+
+    enum Op { lt, gt, eq }
+
+    auto s = format!"%s"(Op.lt);
+    Op op;
+    assert(formattedRead!"%s"(s, op) == 1);
+    assert(op == Op.lt);
+}
diff --git a/libphobos/src/std/sumtype.d b/libphobos/src/std/sumtype.d
index 8242f1e3ee5..658fd384784 100644
--- a/libphobos/src/std/sumtype.d
+++ b/libphobos/src/std/sumtype.d
@@ -1700,7 +1700,6 @@ template match(handlers...)
  * Throws:
  *   [MatchException], if the currently-held type has no matching handler.
  *
- * See_Also: `std.variant.tryVisit`
  * See_Also: $(REF tryVisit, std,variant)
  */
 version (D_Exceptions)
diff --git a/libphobos/src/std/uni/package.d b/libphobos/src/std/uni/package.d
index a27cbea177b..192b6fd2b2d 100644
--- a/libphobos/src/std/uni/package.d
+++ b/libphobos/src/std/uni/package.d
@@ -5798,7 +5798,7 @@ if (is(Char1 : dchar) && is(Char2 : dchar))
 // Utilities for compression of Unicode code point sets
 //============================================================================
 
-@safe void compressTo(uint val, ref ubyte[] arr) pure nothrow
+@safe void compressTo(uint val, ref scope ubyte[] arr) pure nothrow
 {
     // not optimized as usually done 1 time (and not public interface)
     if (val < 128)
@@ -5817,7 +5817,7 @@ if (is(Char1 : dchar) && is(Char2 : dchar))
     }
 }
 
-@safe uint decompressFrom(const(ubyte)[] arr, ref size_t idx) pure
+@safe uint decompressFrom(scope const(ubyte)[] arr, ref size_t idx) pure
 {
     import std.exception : enforce;
     immutable first = arr[idx++];
@@ -8412,7 +8412,7 @@ int hangulSyllableIndex(dchar ch) pure nothrow @nogc @safe
 }
 
 // internal helper: compose hangul syllables leaving dchar.init in holes
-void hangulRecompose(dchar[] seq) pure nothrow @nogc @safe
+void hangulRecompose(scope dchar[] seq) pure nothrow @nogc @safe
 {
     for (size_t idx = 0; idx + 1 < seq.length; )
     {
@@ -8695,7 +8695,7 @@ inout(C)[] normalize(NormalizationForm norm=NFC, C)(return scope inout(C)[] inpu
 }
 
 // canonically recompose given slice of code points, works in-place and mutates data
-private size_t recompose(size_t start, dchar[] input, ubyte[] ccc) pure nothrow @safe
+private size_t recompose(size_t start, scope dchar[] input, scope ubyte[] ccc) pure nothrow @safe
 {
     assert(input.length == ccc.length);
     int accumCC = -1;// so that it's out of 0 .. 255 range
diff --git a/libphobos/src/std/utf.d b/libphobos/src/std/utf.d
index 866ec48cbdc..a29025a179a 100644
--- a/libphobos/src/std/utf.d
+++ b/libphobos/src/std/utf.d
@@ -1168,7 +1168,7 @@ do
 
 /// ditto
 dchar decode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar, S)(
-auto ref S str, ref size_t index) @trusted pure
+auto ref scope S str, ref size_t index) @trusted pure
 if (isSomeString!S)
 in
 {
@@ -1274,7 +1274,7 @@ do
 
 /// ditto
 dchar decodeFront(UseReplacementDchar useReplacementDchar = No.useReplacementDchar, S)(
-ref S str, out size_t numCodeUnits) @trusted pure
+ref scope S str, out size_t numCodeUnits) @trusted pure
 if (isSomeString!S)
 in
 {
@@ -2541,14 +2541,12 @@ size_t encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
         `UTFException` if `c` is not a valid UTF code point.
   +/
 void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
-    ref char[] str, dchar c) @safe pure
+    ref scope char[] str, dchar c) @safe pure
 {
-    char[] r = str;
-
     if (c <= 0x7F)
     {
         assert(isValidDchar(c));
-        r ~= cast(char) c;
+        str ~= cast(char) c;
     }
     else
     {
@@ -2589,9 +2587,8 @@ void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
             c = _utfException!useReplacementDchar("Encoding an invalid code point in UTF-8", c);
             goto L3;
         }
-        r ~= buf[0 .. L];
+        str ~= buf[0 .. L];
     }
-    str = r;
 }
 
 ///
@@ -2666,10 +2663,8 @@ void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
 
 /// ditto
 void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
-    ref wchar[] str, dchar c) @safe pure
+    ref scope wchar[] str, dchar c) @safe pure
 {
-    wchar[] r = str;
-
     if (c <= 0xFFFF)
     {
         if (0xD800 <= c && c <= 0xDFFF)
@@ -2677,7 +2672,7 @@ void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
 
         assert(isValidDchar(c));
     L1:
-        r ~= cast(wchar) c;
+        str ~= cast(wchar) c;
     }
     else if (c <= 0x10FFFF)
     {
@@ -2686,7 +2681,7 @@ void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
         assert(isValidDchar(c));
         buf[0] = cast(wchar)((((c - 0x10000) >> 10) & 0x3FF) + 0xD800);
         buf[1] = cast(wchar)(((c - 0x10000) & 0x3FF) + 0xDC00);
-        r ~= buf;
+        str ~= buf;
     }
     else
     {
@@ -2694,8 +2689,6 @@ void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
         c = _utfException!useReplacementDchar("Encoding an invalid code point in UTF-16", c);
         goto L1;
     }
-
-    str = r;
 }
 
 @safe unittest
@@ -2727,7 +2720,7 @@ void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
 
 /// ditto
 void encode(UseReplacementDchar useReplacementDchar = No.useReplacementDchar)(
-    ref dchar[] str, dchar c) @safe pure
+    ref scope dchar[] str, dchar c) @safe pure
 {
     if ((0xD800 <= c && c <= 0xDFFF) || 0x10FFFF < c)
         c = _utfException!useReplacementDchar("Encoding an invalid code point in UTF-32", c);
diff --git a/libphobos/src/std/xml.d b/libphobos/src/std/xml.d
index 37fab6db038..fdfdc3f70ab 100644
--- a/libphobos/src/std/xml.d
+++ b/libphobos/src/std/xml.d
@@ -433,7 +433,7 @@ enum DecodeMode
  * writefln(decode("a &gt; b")); // writes "a > b"
  * --------------
  */
-string decode(return scope string s, DecodeMode mode=DecodeMode.LOOSE) @safe pure
+string decode(string s, DecodeMode mode=DecodeMode.LOOSE) @safe pure
 {
     import std.algorithm.searching : startsWith;
 
