From owner-svn-src-vendor@freebsd.org Mon Mar 4 18:25:55 2019 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 798F9151E02A; Mon, 4 Mar 2019 18:25:55 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 10CDF77D88; Mon, 4 Mar 2019 18:25:55 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C60997E08; Mon, 4 Mar 2019 18:25:51 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x24IPpCw080698; Mon, 4 Mar 2019 18:25:51 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x24IPo9o080690; Mon, 4 Mar 2019 18:25:50 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201903041825.x24IPo9o080690@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 4 Mar 2019 18:25:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r344767 - in vendor/clang/dist-release_80: docs include/clang/Basic lib/Driver/ToolChains lib/Frontend X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/clang/dist-release_80: docs include/clang/Basic lib/Driver/ToolChains lib/Frontend X-SVN-Commit-Revision: 344767 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 10CDF77D88 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 18:25:55 -0000 Author: dim Date: Mon Mar 4 18:25:50 2019 New Revision: 344767 URL: https://svnweb.freebsd.org/changeset/base/344767 Log: Vendor import of clang release_80 branch r355313: https://llvm.org/svn/llvm-project/cfe/branches/release_80@355313 Modified: vendor/clang/dist-release_80/docs/AttributeReference.rst vendor/clang/dist-release_80/docs/ReleaseNotes.rst vendor/clang/dist-release_80/include/clang/Basic/AttrDocs.td vendor/clang/dist-release_80/lib/Driver/ToolChains/OpenBSD.cpp vendor/clang/dist-release_80/lib/Frontend/InitHeaderSearch.cpp Modified: vendor/clang/dist-release_80/docs/AttributeReference.rst ============================================================================== --- vendor/clang/dist-release_80/docs/AttributeReference.rst Mon Mar 4 18:25:47 2019 (r344766) +++ vendor/clang/dist-release_80/docs/AttributeReference.rst Mon Mar 4 18:25:50 2019 (r344767) @@ -1274,13 +1274,13 @@ The ``gnu_inline`` changes the meaning of ``extern inl semantics, meaning: * If any declaration that is declared ``inline`` is not declared ``extern``, -then the ``inline`` keyword is just a hint. In particular, an out-of-line -definition is still emitted for a function with external linkage, even if all -call sites are inlined, unlike in C99 and C++ inline semantics. + then the ``inline`` keyword is just a hint. In particular, an out-of-line + definition is still emitted for a function with external linkage, even if all + call sites are inlined, unlike in C99 and C++ inline semantics. * If all declarations that are declared ``inline`` are also declared -``extern``, then the function body is present only for inlining and no -out-of-line version is emitted. + ``extern``, then the function body is present only for inlining and no + out-of-line version is emitted. Some important consequences: ``static inline`` emits an out-of-line version if needed, a plain ``inline`` definition emits an out-of-line version @@ -1315,6 +1315,46 @@ The symbol name of the resolver function is given in q The ``ifunc`` attribute may only be used on a function declaration. A function declaration with an ``ifunc`` attribute is considered to be a definition of the declared entity. The entity must not have weak linkage; for example, in C++, it cannot be applied to a declaration if a definition at that location would be considered inline. Not all targets support this attribute. ELF target support depends on both the linker and runtime linker, and is available in at least lld 4.0 and later, binutils 2.20.1 and later, glibc v2.11.1 and later, and FreeBSD 9.1 and later. Non-ELF targets currently do not support this attribute. + + +import_module +------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "C2x", "``__declspec``", "Keyword", "``#pragma``", "``#pragma clang attribute``" + + "``import_module``","``clang::import_module``","``clang::import_module``","","","","Yes" + +Clang supports the ``__attribute__((import_module()))`` +attribute for the WebAssembly target. This attribute may be attached to a +function declaration, where it modifies how the symbol is to be imported +within the WebAssembly linking environment. + +WebAssembly imports use a two-level namespace scheme, consisting of a module +name, which typically identifies a module from which to import, and a field +name, which typically identifies a field from that module to import. By +default, module names for C/C++ symbols are assigned automatically by the +linker. This attribute can be used to override the default behavior, and +reuqest a specific module name be used instead. + + +import_name +----------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "C2x", "``__declspec``", "Keyword", "``#pragma``", "``#pragma clang attribute``" + + "``import_name``","``clang::import_name``","``clang::import_name``","","","","Yes" + +Clang supports the ``__attribute__((import_name()))`` +attribute for the WebAssembly target. This attribute may be attached to a +function declaration, where it modifies how the symbol is to be imported +within the WebAssembly linking environment. + +WebAssembly imports use a two-level namespace scheme, consisting of a module +name, which typically identifies a module from which to import, and a field +name, which typically identifies a field from that module to import. By +default, field names for C/C++ symbols are the same as their C/C++ symbol +names. This attribute can be used to override the default behavior, and +reuqest a specific field name be used instead. internal_linkage Modified: vendor/clang/dist-release_80/docs/ReleaseNotes.rst ============================================================================== --- vendor/clang/dist-release_80/docs/ReleaseNotes.rst Mon Mar 4 18:25:47 2019 (r344766) +++ vendor/clang/dist-release_80/docs/ReleaseNotes.rst Mon Mar 4 18:25:50 2019 (r344767) @@ -17,8 +17,8 @@ describe the status of Clang in some detail, including improvements from the previous release and new feature work. For the general LLVM release notes, see `the LLVM documentation `_. All LLVM -releases may be downloaded from the `LLVM releases web -site `_. +releases may be downloaded +from the `LLVM releases web site `_. For more information about Clang or LLVM, including information about the latest release, please see the `Clang Web Site `_ or the @@ -175,23 +175,13 @@ New Compiler Flags be controlled by the ``-mrelax-pic-calls`` and ``-mno-relax-pic-calls`` options. -- ... - -Deprecated Compiler Flags -------------------------- - -The following options are deprecated and ignored. They will be removed in -future versions of Clang. - -- ... - Modified Compiler Flags ----------------------- -- As of clang 8, `alignof` and `_Alignof` return the ABI alignment of a type, - as opposed to the preferred alignment. `__alignof` still returns the - preferred alignment. `-fclang-abi-compat=7` (and previous) will make - `alignof` and `_Alignof` return preferred alignment again. +- As of clang 8, ``alignof`` and ``_Alignof`` return the ABI alignment of a type, + as opposed to the preferred alignment. ``__alignof`` still returns the + preferred alignment. ``-fclang-abi-compat=7`` (and previous) will make + ``alignof`` and ``_Alignof`` return preferred alignment again. New Pragmas in Clang @@ -210,7 +200,7 @@ Attribute Changes in Clang Windows Support --------------- -- clang-cl now supports the use of the precompiled header options /Yc and /Yu +- clang-cl now supports the use of the precompiled header options ``/Yc`` and ``/Yu`` without the filename argument. When these options are used without the filename, a `#pragma hdrstop` inside the source marks the end of the precompiled code. @@ -229,36 +219,10 @@ Windows Support - Allow using Address Sanitizer and Undefined Behaviour Sanitizer on MinGW. -- ... +- Structured Exception Handling support for ARM64 Windows. The ARM64 Windows + target is in pretty good shape now. -C Language Changes in Clang ---------------------------- - -- ... - -... - -C11 Feature Support -^^^^^^^^^^^^^^^^^^^ - -... - -C++ Language Changes in Clang ------------------------------ - -- ... - -C++1z Feature Support -^^^^^^^^^^^^^^^^^^^^^ - -... - -Objective-C Language Changes in Clang -------------------------------------- - -... - OpenCL Kernel Language Changes in Clang --------------------------------------- @@ -317,17 +281,17 @@ C++ for OpenCL: ABI Changes in Clang -------------------- -- `_Alignof` and `alignof` now return the ABI alignment of a type, as opposed +- ``_Alignof`` and ``alignof`` now return the ABI alignment of a type, as opposed to the preferred alignment. - This is more in keeping with the language of the standards, as well as being compatible with gcc - - `__alignof` and `__alignof__` still return the preferred alignment of + - ``__alignof`` and ``__alignof__`` still return the preferred alignment of a type - This shouldn't break any ABI except for things that explicitly ask for - `alignas(alignof(T))`. + ``alignas(alignof(T))``. - If you have interfaces that break with this change, you may wish to switch - to `alignas(__alignof(T))`, instead of using the `-fclang-abi-compat` + to ``alignas(__alignof(T))``, instead of using the ``-fclang-abi-compat`` switch. OpenMP Support in Clang @@ -364,43 +328,7 @@ New features supported for Cuda devices: - General performance improvement. -CUDA Support in Clang ---------------------- - -Internal API Changes --------------------- - -These are major API changes that have happened since the 7.0.0 release of -Clang. If upgrading an external codebase that uses Clang as a library, -this section should help get you past the largest hurdles of upgrading. - -- ... - -AST Matchers ------------- - -- ... - -clang-format ------------- - - -- ... - -libclang --------- - -... - - -Static Analyzer ---------------- - -- ... - -... - .. _release-notes-ubsan: Undefined Behavior Sanitizer (UBSan) @@ -476,25 +404,6 @@ Undefined Behavior Sanitizer (UBSan) data[x] *= data[x]; } -Core Analysis Improvements -========================== - -- ... - -New Issues Found -================ - -- ... - -Python Binding Changes ----------------------- - -The following methods have been added: - -- ... - -Significant Known Problems -========================== Additional Information ====================== Modified: vendor/clang/dist-release_80/include/clang/Basic/AttrDocs.td ============================================================================== --- vendor/clang/dist-release_80/include/clang/Basic/AttrDocs.td Mon Mar 4 18:25:47 2019 (r344766) +++ vendor/clang/dist-release_80/include/clang/Basic/AttrDocs.td Mon Mar 4 18:25:50 2019 (r344767) @@ -3821,13 +3821,13 @@ The ``gnu_inline`` changes the meaning of ``extern inl semantics, meaning: * If any declaration that is declared ``inline`` is not declared ``extern``, -then the ``inline`` keyword is just a hint. In particular, an out-of-line -definition is still emitted for a function with external linkage, even if all -call sites are inlined, unlike in C99 and C++ inline semantics. + then the ``inline`` keyword is just a hint. In particular, an out-of-line + definition is still emitted for a function with external linkage, even if all + call sites are inlined, unlike in C99 and C++ inline semantics. * If all declarations that are declared ``inline`` are also declared -``extern``, then the function body is present only for inlining and no -out-of-line version is emitted. + ``extern``, then the function body is present only for inlining and no + out-of-line version is emitted. Some important consequences: ``static inline`` emits an out-of-line version if needed, a plain ``inline`` definition emits an out-of-line version Modified: vendor/clang/dist-release_80/lib/Driver/ToolChains/OpenBSD.cpp ============================================================================== --- vendor/clang/dist-release_80/lib/Driver/ToolChains/OpenBSD.cpp Mon Mar 4 18:25:47 2019 (r344766) +++ vendor/clang/dist-release_80/lib/Driver/ToolChains/OpenBSD.cpp Mon Mar 4 18:25:50 2019 (r344767) @@ -227,9 +227,7 @@ void openbsd::Linker::ConstructJob(Compilation &C, con CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crtend))); } - const char *Exec = Args.MakeArgString( - !NeedsSanitizerDeps ? ToolChain.GetLinkerPath() - : ToolChain.GetProgramPath("ld.lld")); + const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs, Inputs)); } Modified: vendor/clang/dist-release_80/lib/Frontend/InitHeaderSearch.cpp ============================================================================== --- vendor/clang/dist-release_80/lib/Frontend/InitHeaderSearch.cpp Mon Mar 4 18:25:47 2019 (r344766) +++ vendor/clang/dist-release_80/lib/Frontend/InitHeaderSearch.cpp Mon Mar 4 18:25:50 2019 (r344767) @@ -433,14 +433,6 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths case llvm::Triple::DragonFly: AddPath("/usr/include/c++/5.0", CXXSystem, false); break; - case llvm::Triple::OpenBSD: { - std::string t = triple.getTriple(); - if (t.substr(0, 6) == "x86_64") - t.replace(0, 6, "amd64"); - AddGnuCPlusPlusIncludePaths("/usr/include/g++", - t, "", "", triple); - break; - } case llvm::Triple::Minix: AddGnuCPlusPlusIncludePaths("/usr/gnu/include/c++/4.4.3", "", "", "", triple);