From 6948c7c3d29bf5892299550a19ce615a85ef9b2b Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Tue, 23 Jun 2020 10:40:37 +0200 Subject: [PATCH] d: Turn on deprecation warnings by default. This is the default in the upstream reference compiler, and can reduce some confusion when comparing warning/error messages of gdc and dmd side by side. Merges libphobos with upstream druntime d05ebaad and phobos 021ae0df7. Reviewed-on: https://github.com/dlang/druntime/pull/3127 https://github.com/dlang/phobos/pull/7521 gcc/d/ChangeLog: * d-lang.cc (d_init_options): Turn on deprecation warnings by default. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime d05ebaad. * src/MERGE: Merge upstream phobos 021ae0df7. * testsuite/libphobos.typeinfo/struct-align.d: Remove empty statement. gcc/testsuite/ChangeLog: * gdc.dg/asm1.d: Don't use deprecated asm syntax. * gdc.dg/compilable.d: Add public to selective import. * gdc.dg/lto/ltotests_0.d: Explicitly catch Throwable. * gdc.dg/runnable.d: Remove empty statement. --- gcc/d/d-lang.cc | 2 +- gcc/testsuite/gdc.dg/asm1.d | 8 ++++---- gcc/testsuite/gdc.dg/compilable.d | 2 +- gcc/testsuite/gdc.dg/lto/ltotests_0.d | 2 +- gcc/testsuite/gdc.dg/runnable.d | 2 +- libphobos/libdruntime/MERGE | 2 +- libphobos/libdruntime/rt/util/utf.d | 4 ++-- libphobos/src/MERGE | 2 +- libphobos/src/std/range/package.d | 2 +- libphobos/testsuite/libphobos.typeinfo/struct-align.d | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/gcc/d/d-lang.cc b/gcc/d/d-lang.cc index 82e24de8cd1..24a1125ef8d 100644 --- a/gcc/d/d-lang.cc +++ b/gcc/d/d-lang.cc @@ -306,7 +306,7 @@ d_init_options (unsigned int, cl_decoded_option *decoded_options) global.params.cplusplus = CppStdRevisionCpp14; /* Warnings and deprecations are disabled by default. */ - global.params.useDeprecated = DIAGNOSTICoff; + global.params.useDeprecated = DIAGNOSTICinform; global.params.warnings = DIAGNOSTICoff; global.params.imppath = new Strings (); diff --git a/gcc/testsuite/gdc.dg/asm1.d b/gcc/testsuite/gdc.dg/asm1.d index 3fcfd6a58c1..dce36769370 100644 --- a/gcc/testsuite/gdc.dg/asm1.d +++ b/gcc/testsuite/gdc.dg/asm1.d @@ -13,8 +13,8 @@ void parse2() { asm { - "" : : "g" 1 ? 2 : 3; - "" : : "g" 1 ? 2 : : 3; + "" : : "g" (1 ? 2 : 3); + "" : : "g" (1 ? 2 : :) 3; // { dg-error "expression expected, not ':'" "" { target *-*-* } .-1 } // { dg-error "expected constant string constraint for operand" "" { target *-*-* } .-2 } } @@ -58,7 +58,7 @@ void semantic1() void semantic2a(X...)(X expr) { alias X[0] var1; - asm { "%0" : "=m" var1; } // { dg-error "double 'double' is a type, not an lvalue" } + asm { "%0" : "=m" (var1); } // { dg-error "double 'double' is a type, not an lvalue" } } void semantic2() @@ -86,6 +86,6 @@ void semantic4() { asm { - "%0" : : "m" S4.foo; // { dg-error "template instance opDispatch!\"foo\" has no value" } + "%0" : : "m" (S4.foo); // { dg-error "template instance opDispatch!\"foo\" has no value" } } } diff --git a/gcc/testsuite/gdc.dg/compilable.d b/gcc/testsuite/gdc.dg/compilable.d index 92a18756a0e..3f92f9b2957 100644 --- a/gcc/testsuite/gdc.dg/compilable.d +++ b/gcc/testsuite/gdc.dg/compilable.d @@ -250,7 +250,7 @@ class C204 : I204 // https://bugzilla.gdcproject.org/show_bug.cgi?id=241 import imports.gdc241a; -import imports.gdc241b : S241, C241, E241, N241; +public import imports.gdc241b : S241, C241, E241, N241; /******************************************/ // https://bugzilla.gdcproject.org/show_bug.cgi?id=242 diff --git a/gcc/testsuite/gdc.dg/lto/ltotests_0.d b/gcc/testsuite/gdc.dg/lto/ltotests_0.d index bb18beaa9c8..91737609f10 100644 --- a/gcc/testsuite/gdc.dg/lto/ltotests_0.d +++ b/gcc/testsuite/gdc.dg/lto/ltotests_0.d @@ -46,7 +46,7 @@ struct S61b { try other.a(); - catch + catch (Throwable) other.b(); } } diff --git a/gcc/testsuite/gdc.dg/runnable.d b/gcc/testsuite/gdc.dg/runnable.d index 7307e09a645..d974bda8c58 100644 --- a/gcc/testsuite/gdc.dg/runnable.d +++ b/gcc/testsuite/gdc.dg/runnable.d @@ -243,7 +243,7 @@ void test36b()(char val) auto test36c_1() { int a; - void c() {}; + void c() {} class Result { int b; diff --git a/libphobos/libdruntime/MERGE b/libphobos/libdruntime/MERGE index 5e3bf3b795a..bcde10514ec 100644 --- a/libphobos/libdruntime/MERGE +++ b/libphobos/libdruntime/MERGE @@ -1,4 +1,4 @@ -5cc061a8733731d5b40334c0eb7a927b6d6241ce +d05ebaad15fbffce6d707c138c84d7b60fcf5ffd 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/libdruntime/rt/util/utf.d b/libphobos/libdruntime/rt/util/utf.d index 07758409ec7..55869b37c8c 100644 --- a/libphobos/libdruntime/rt/util/utf.d +++ b/libphobos/libdruntime/rt/util/utf.d @@ -651,9 +651,9 @@ string toUTF8(in wchar[] s) else { r.length = i; - foreach (dchar c; s[i .. slen]) + foreach (dchar ch; s[i .. slen]) { - encode(r, c); + encode(r, ch); } break; } diff --git a/libphobos/src/MERGE b/libphobos/src/MERGE index 5900ca7c6a4..1562f747b74 100644 --- a/libphobos/src/MERGE +++ b/libphobos/src/MERGE @@ -1,4 +1,4 @@ -64ed4684fa2a0f2401f5b6df34f6dcb4c3973945 +021ae0df76727a32809a29887095ab7093489ea3 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/range/package.d b/libphobos/src/std/range/package.d index fe581f3853b..13601cb9da9 100644 --- a/libphobos/src/std/range/package.d +++ b/libphobos/src/std/range/package.d @@ -4874,7 +4874,7 @@ if (allSatisfy!(isInputRange, Ranges)) // Just make sure 1-range case instantiates. This hangs the compiler // when no explicit stopping policy is specified due to Bug 4652. auto stuff = lockstep([1,2,3,4,5], StoppingPolicy.shortest); - foreach (int i, a; stuff) + foreach (i, a; stuff) { assert(stuff[i] == a); } diff --git a/libphobos/testsuite/libphobos.typeinfo/struct-align.d b/libphobos/testsuite/libphobos.typeinfo/struct-align.d index 72866517481..54eaaa6ff5a 100644 --- a/libphobos/testsuite/libphobos.typeinfo/struct-align.d +++ b/libphobos/testsuite/libphobos.typeinfo/struct-align.d @@ -2,7 +2,7 @@ module structalign; void main () { - struct K { int *a; }; + struct K { int *a; } K k; auto ti = typeid (k);