public inbox for
help / color / mirror / Atom feed
From: Iain Buclaw <>
Subject: gcc-wwwdocs branch master updated. c5dabd968113d7ca52d7e5f9a1febab5e3be1056
Date: Wed, 26 May 2021 13:41:20 +0000 (GMT)	[thread overview]
Message-ID: <> (raw)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gcc-wwwdocs".

The branch, master has been updated
       via  c5dabd968113d7ca52d7e5f9a1febab5e3be1056 (commit)
      from  512805afa4a8f5db215a483b84347bbe7971da8a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c5dabd968113d7ca52d7e5f9a1febab5e3be1056
Author: Iain Buclaw <>
Date:   Wed May 19 13:56:43 2021 +0200

    wwwdocs: Add D front-end section for GCC 11 changes

diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html
index 4bdae272..08082411 100644
--- a/htdocs/gcc-11/changes.html
+++ b/htdocs/gcc-11/changes.html
@@ -544,6 +544,196 @@ You may also want to check out our
+<h3 id="d">D</h3>
+  <li>New features:
+    <ul>
+      <li>A new bottom type <code>typeof(*null)</code> has been added to
+	represent run-time errors and non-terminating functions.  This also
+	introduces a new standard alias for the type named
+	<code>noreturn</code>, and is implicitly imported into every module.
+      </li>
+      <li>Printf-like and scanf-like functions are now detected by prefixing
+	them with <code>pragma(printf)</code> for printf-like functions or
+	<code>pragma(scanf)</code> for scanf-like functions.
+      </li>
+      <li>The <code>__traits()</code> expression now supports the extensions
+	<code>isDeprecated</code>, <code>isDisabled</code>,
+	<code>isFuture</code>, <code>isModule</code>, <code>isPackage</code>,
+	<code>child</code>, <code>isReturnOnStack</code>,
+	<code>isZeroInit</code>, <code>getTargetInfo</code>,
+	<code>getLocation</code>, <code>hasPostblit</code>,
+	<code>isCopyable</code>, <code>getVisibility</code>, and
+	<code>totype</code>.
+      </li>
+      <li>An expression-based contract syntax has been added to the
+	language.
+      </li>
+      <li>Function literals can now return a value by reference with the
+	<code>ref</code> keyword.
+      </li>
+      <li>A new syntax is available to declare aliases to function types using
+	the <code>alias</code> syntax based on the assignment operator.
+      </li>
+      <li>New types <code>__c_complex_float</code>,
+	<code>__c_complex_double</code>,  <code>__c_complex_real</code>, and
+	<code>__c_wchar_t</code> have been added for interfacing with C
+	and C++ code, and are available from the <code>core.stdc.config</code>
+	module.
+      </li>
+      <li>User-defined attributes can now be used to annotate enum members,
+	alias declarations, and function parameters.
+      </li>
+      <li>Templates alias parameters can now be instantiated with basic types
+	such as <code>int</code> or <code>void function()</code>.
+      </li>
+      <li>The <code>mixin</code> construct can now be used as types in the form
+	<code>mixin(string) var</code>.
+      </li>
+      <li>The <code>mixin</code> construct can now take an argument list, same
+	as <code>pragma(msg)</code>.
+      </li>
+    </ul>
+  </li>
+  <li>New intrinsics:
+    <ul>
+      <li>Bitwise rotate intrinsics <code>core.bitop.rol</code> and
+	<code>core.bitop.ror</code> have been added.
+      </li>
+      <li>Byte swap intrinsic <code>core.bitop.byteswap</code> for swapping
+	bytes in a 2-byte <code>ushort</code> has been added.
+      </li>
+      <li>Math intrinsics available from <code>core.math</code> now have
+	overloads for <code>float</code> and <code>double</code> types.
+	<li>Volatile intrinsics <code>core.volatile.volatileLoad</code> and
+	  <code>core.volatile.volatileStore</code> have been moved from the
+	  <code>core.bitop</code> module.
+	</li>
+    </ul>
+  </li>
+  <li>New attributes:
+    <ul>
+      <li>The following GCC attributes are now recognized and available from
+	the <code>gcc.attributes</code> module with short-hand aliases for
+	convenience:
+	<ul>
+	  <li><code>@attribute("alloc_size", arguments)</code> or
+	    <code>@alloc_size(arguments)</code>.
+	  </li>
+	  <li><code>@attribute("always_inline")</code> or
+	    <code>@always_inline</code>.
+	  </li>
+	  <li><code>@attribute("used")</code> or <code>@used</code>.</li>
+	  <li><code>@attribute("optimize", arguments)</code> or
+	    <code>@optimize(arguments)</code>.
+	  </li>
+	  <li><code>@attribute("cold")</code> or <code>@cold</code>.</li>
+	  <li><code>@attribute("noplt")</code> or <code>@noplt</code>.</li>
+	  <li><code>@attribute("target_clones", arguments)</code> or
+	    <code>@target_clones(arguments)</code>.
+	  </li>
+	  <li><code>@attribute("no_icf")</code> or <code>@no_icf</code>.</li>
+	  <li><code>@attribute("noipa")</code> or <code>@noipa</code>.</li>
+	  <li><code>@attribute("symver", arguments)</code> or
+	    <code>@symver(arguments)</code>.
+	  </li>
+	</ul>
+      </li>
+      <li>New aliases have been added to <code>gcc.attributes</code> for
+	compatibility with <code>ldc.attributes</code>.
+	<ul>
+	  <li>The <code>@allocSize(arguments)</code> attribute is the same as
+	    <code>@alloc_size(arguments)</code>, but uses a 0-based index for
+	    function arguments.
+	  </li>
+	  <li>The <code>@assumeUsed</code> attribute is an alias for
+	    <code>@attribute("used")</code>.
+	  </li>
+	  <li>The <code>@fastmath</code> attribute is an alias for
+	    <code>@optimize("Ofast")</code>.
+	  </li>
+	  <li>The <code>@naked</code> attribute is an alias for
+	    <code>@attribute("naked")</code>.  This attribute may not be
+	    available on all targets.
+	  </li>
+	  <li>The <code>@restrict</code> attribute has been added to specify
+	    that a function parameter is to be restrict-qualified in the C99
+	    sense of the term.
+	  </li>
+	  <li>The <code>@optStrategy(strategy)</code> attribute is an alias for
+	    <code>@optimize("O0")</code> when the <code>strategy</code> is
+	    <code>"none"</code>, otherwise <code>@optimize("Os")</code> for the
+	    <code>"optsize"</code> and <code>"minsize"</code> strategies.
+	  </li>
+	  <li>The <code>@polly</code> attribute is an alias for
+	    <code>@optimize("loop-parallelize-all")</code>.
+	  </li>
+	  <li>The <code>@section(name)</code> attribute is an alias for
+	    <code>@attribute("section", name)</code>.
+	  </li>
+	  <li>The <code>@target(arguments)</code> attribute is an alias for
+	    <code>attribute("target", arguments)</code>.
+	  </li>
+	  <li>The <code>@weak</code> attribute is an alias for
+	    <code>@attribute("weak")</code>.
+	  </li>
+	</ul>
+      </li>
+    </ul>
+  </li>
+  <li>New language options:
+    <ul>
+      <li><code>-fweak-templates</code>, added to control whether declarations
+	that can be defined in multiple objects should be emitted as weak
+	symbols. The default is to emit all symbols with extern linkage as
+	weak, unless the target lacks support for weak symbols.
+      </li>
+      <li><code>-Wdeprecated</code>, this option is now enabled by default.
+      </li>
+      <li><code>-Wextra</code>, this option now turns on all warnings that are
+	not part of the core D language front-end - <code>-Waddress</code>,
+	<code>-Wcast-result</code>, <code>-Wunknown-pragmas</code>.
+      </li>
+      <li><code>-Wvarargs</code>, added to turn on warnings about questionable
+	usage of the <code>va_start</code> intrinsic.
+      </li>
+    </ul>
+  </li>
+  <li>Deprecated and removed features:
+    <ul>
+      <li>Compiler-recognized attributes are now made available from the
+	<code>gcc.attributes</code> module, the former module
+	<code>gcc.attribute</code> has been deprecated and will be removed in
+	a future release.
+      </li>
+      <li>The <code>@attribute("alias")</code> attribute has been removed, as
+	it had been superseded by <code>pragma(mangle)</code>.
+      </li>
+      <li>The <code>@attribute("forceinline")</code> attribute has been removed
+	and renamed to <code>@always_inline</code>.
+      </li>
+      <li><code>__vector</code> types that are not supported in hardware are
+	now rejected at compile-time.  Previously all vector types were
+	accepted by the compiler and emulated when target support was absent.
+      </li>
+      <li>The <code>extern(Pascal)</code> linkage attribute has been removed.
+      </li>
+      <li>The deprecation phase for <code>-ftransition=import</code> and
+	<code>-ftransition=checkimports</code> is finished.  These switches no
+	longer have an effect and are now removed.  Symbols that are not
+	visible in a particular scope will no longer be found by the compiler.
+      </li>
+      <li>It is now an error to use private variables selectively imported from
+	other modules.  Due to a bug, some imported private members were
+	visible from other modules, violating the specification.
+      </li>
+      <li>The <code>-fweak</code> compiler switch has been removed, as it
+	existed only for testing.
+      </li>
+    </ul>
+  </li>
 <h3 id="fortran">Fortran</h3>
diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html
index 53abf9ed..9fecc24b 100644
--- a/htdocs/gcc-12/changes.html
+++ b/htdocs/gcc-12/changes.html
@@ -69,6 +69,8 @@ a work-in-progress.</p>
 <!-- <h3 id="cxx">C++</h3> -->
 <!-- <h4 id="libstdcxx">Runtime Library (libstdc++)</h4> -->
+<!-- <h3 id="d">D</h3> -->
 <!-- <h3 id="fortran">Fortran</h3> -->
 <!-- <h3 id="go">Go</h3> -->


Summary of changes:
 htdocs/gcc-11/changes.html | 190 +++++++++++++++++++++++++++++++++++++++++++++
 htdocs/gcc-12/changes.html |   2 +
 2 files changed, 192 insertions(+)


                 reply	other threads:[~2021-05-26 13:41 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).