Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/llvm/dist/clang Import Clang r232565 post-3.6.0...



details:   https://anonhg.NetBSD.org/src/rev/68baa04305c2
branches:  trunk
changeset: 806914:68baa04305c2
user:      joerg <joerg%NetBSD.org@localhost>
date:      Wed Mar 18 17:26:33 2015 +0000

description:
Import Clang r232565 post-3.6.0. Various bugfixes, especially for ARM.

diffstat:

 external/bsd/llvm/dist/clang/docs/ReleaseNotes.rst                                 |  164 +++++----
 external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticGroups.td               |    3 +
 external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticParseKinds.td           |    4 +
 external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticSemaKinds.td            |    9 +
 external/bsd/llvm/dist/clang/include/clang/Basic/TargetInfo.h                      |    6 +
 external/bsd/llvm/dist/clang/include/clang/Sema/Sema.h                             |    1 +
 external/bsd/llvm/dist/clang/lib/AST/DeclCXX.cpp                                   |    6 +-
 external/bsd/llvm/dist/clang/lib/Basic/SourceManager.cpp                           |   39 +-
 external/bsd/llvm/dist/clang/lib/Basic/Targets.cpp                                 |    8 +
 external/bsd/llvm/dist/clang/lib/CodeGen/CGClass.cpp                               |    3 +-
 external/bsd/llvm/dist/clang/lib/CodeGen/CGExprScalar.cpp                          |    3 +-
 external/bsd/llvm/dist/clang/lib/CodeGen/CodeGenModule.cpp                         |    4 +-
 external/bsd/llvm/dist/clang/lib/CodeGen/CodeGenModule.h                           |    2 +-
 external/bsd/llvm/dist/clang/lib/CodeGen/TargetInfo.cpp                            |   20 +-
 external/bsd/llvm/dist/clang/lib/Driver/ToolChains.cpp                             |    3 +-
 external/bsd/llvm/dist/clang/lib/Driver/Tools.cpp                                  |    3 +-
 external/bsd/llvm/dist/clang/lib/Parse/ParseExprCXX.cpp                            |   11 +-
 external/bsd/llvm/dist/clang/lib/Sema/SemaChecking.cpp                             |   21 +-
 external/bsd/llvm/dist/clang/lib/Sema/SemaDecl.cpp                                 |    8 +
 external/bsd/llvm/dist/clang/lib/Sema/SemaLookup.cpp                               |   14 +-
 external/bsd/llvm/dist/clang/lib/Serialization/ASTWriterDecl.cpp                   |   28 +-
 external/bsd/llvm/dist/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp   |    4 +-
 external/bsd/llvm/dist/clang/test/CodeGen/builtins.c                               |    3 +
 external/bsd/llvm/dist/clang/test/CodeGen/invalid_global_asm.c                     |    5 +
 external/bsd/llvm/dist/clang/test/CodeGen/x86_64-arguments.c                       |   22 +
 external/bsd/llvm/dist/clang/test/CodeGenCUDA/llvm-used.cu                         |    8 +
 external/bsd/llvm/dist/clang/test/CodeGenCXX/ctor-dtor-alias.cpp                   |   11 +
 external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-line.cpp                   |   27 +
 external/bsd/llvm/dist/clang/test/PCH/implicitly-deleted.cpp                       |   18 +
 external/bsd/llvm/dist/clang/test/Parser/cxx0x-lambda-expressions.cpp              |    2 +-
 external/bsd/llvm/dist/clang/test/Parser/objcxx0x-lambda-expressions.mm            |    2 +-
 external/bsd/llvm/dist/clang/test/Sema/builtin-longjmp.c                           |   34 ++
 external/bsd/llvm/dist/clang/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp |    1 +
 external/bsd/llvm/dist/clang/test/SemaCXX/lambda-expressions.cpp                   |    9 +
 34 files changed, 377 insertions(+), 129 deletions(-)

diffs (truncated from 989 to 300 lines):

diff -r deee07d1532e -r 68baa04305c2 external/bsd/llvm/dist/clang/docs/ReleaseNotes.rst
--- a/external/bsd/llvm/dist/clang/docs/ReleaseNotes.rst        Wed Mar 18 17:23:18 2015 +0000
+++ b/external/bsd/llvm/dist/clang/docs/ReleaseNotes.rst        Wed Mar 18 17:26:33 2015 +0000
@@ -1,6 +1,6 @@
-=====================================
-Clang 3.6 (In-Progress) Release Notes
-=====================================
+=======================
+Clang 3.6 Release Notes
+=======================
 
 .. contents::
    :local:
@@ -8,12 +8,6 @@
 
 Written by the `LLVM Team <http://llvm.org/>`_
 
-.. warning::
-
-   These are in-progress notes for the upcoming Clang 3.6 release. You may
-   prefer the `Clang 3.5 Release Notes
-   <http://llvm.org/releases/3.5.0/tools/clang/docs/ReleaseNotes.html>`_.
-
 Introduction
 ============
 
@@ -22,8 +16,8 @@
 describe the status of Clang in some detail, including major
 improvements from the previous release and new feature work. For the
 general LLVM release notes, see `the LLVM
-documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
-releases may be downloaded from the `LLVM releases web
+documentation <http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html>`_.
+All LLVM releases may be downloaded from the `LLVM releases web
 site <http://llvm.org/releases/>`_.
 
 For more information about Clang or LLVM, including information about
@@ -31,11 +25,6 @@
 Site <http://clang.llvm.org>`_ or the `LLVM Web
 Site <http://llvm.org>`_.
 
-Note that if you are reading this file from a Subversion checkout or the
-main Clang web page, this document applies to the *next* release, not
-the current one. To see the release notes for a specific release, please
-see the `releases page <http://llvm.org/releases/>`_.
-
 What's New in Clang 3.6?
 ========================
 
@@ -63,114 +52,155 @@
 explain them more clearly, and provide more accurate source information
 about them. The improvements since the 3.5 release include:
 
--  ...
+- Smarter typo correction. Clang now tries a bit harder to give a usable
+  suggestion in more cases, and can now successfully recover in more
+  situations where the suggestion changes how an expression is parsed.
+
 
 New Compiler Flags
 ------------------
 
-The option ....
+The ``-fpic`` option now uses small pic on PowerPC.
+
 
 The __EXCEPTIONS macro
 ----------------------
-``__EXCEPTIONS`` is now defined when landing pads are emitted, not when c++ exceptions are enabled. The two can be different in Objective-C files: If C++ exceptions are disabled but Objective-C 
exceptions are enabled, landing pads will be emitted. Clang 3.6 is switching the behavior of ``__EXCEPTIONS``. Clang 3.5 confusingly changed the behavior of ``has_feature(cxx_exceptions)``, which 
used to be set if landing pads were emitted, but is now set if C++ exceptions are enabled. So there are 3 cases:
+``__EXCEPTIONS`` is now defined when landing pads are emitted, not when
+C++ exceptions are enabled. The two can be different in Objective-C files:
+If C++ exceptions are disabled but Objective-C exceptions are enabled,
+landing pads will be emitted. Clang 3.6 is switching the behavior of
+``__EXCEPTIONS``. Clang 3.5 confusingly changed the behavior of
+``has_feature(cxx_exceptions)``, which used to be set if landing pads were
+emitted, but is now set if C++ exceptions are enabled. So there are 3 cases:
 
 Clang before 3.5:
-   ``__EXCEPTIONS`` is set if C++ exceptions are enabled, ``cxx_exceptions`` enabled if C++ or ObjC exceptions are enabled
+   ``__EXCEPTIONS`` is set if C++ exceptions are enabled, ``cxx_exceptions``
+   enabled if C++ or ObjC exceptions are enabled
 
 Clang 3.5:
-   ``__EXCEPTIONS`` is set if C++ exceptions are enabled, ``cxx_exceptions`` enabled if C++ exceptions are enabled
+   ``__EXCEPTIONS`` is set if C++ exceptions are enabled, ``cxx_exceptions``
+   enabled if C++ exceptions are enabled
 
 Clang 3.6:
-   ``__EXCEPTIONS`` is set if C++ or ObjC exceptions are enabled, ``cxx_exceptions`` enabled if C++ exceptions are enabled
+   ``__EXCEPTIONS`` is set if C++ or ObjC exceptions are enabled,
+   ``cxx_exceptions`` enabled if C++ exceptions are enabled
 
-To reliably test if C++ exceptions are enabled, use ``__EXCEPTIONS && __has_feature(cxx_exceptions)``, else things won't work in all versions of clang in Objective-C++ files.
+To reliably test if C++ exceptions are enabled, use
+``__EXCEPTIONS && __has_feature(cxx_exceptions)``, else things won't work in
+all versions of Clang in Objective-C++ files.
 
 
 New Pragmas in Clang
 -----------------------
 
-Clang now supports the ...
+Clang now supports the `#pragma unroll` and `#pragma nounroll` directives to
+specify loop unrolling optimization hints.  Placed just prior to the desired
+loop, `#pragma unroll` directs the loop unroller to attempt to fully unroll the
+loop.  The pragma may also be specified with a positive integer parameter
+indicating the desired unroll count: `#pragma unroll _value_`.  The unroll count
+parameter can be optionally enclosed in parentheses. The directive `#pragma
+nounroll` indicates that the loop should not be unrolled.  These unrolling hints
+may also be expressed using the `#pragma clang loop` directive.  See the Clang
+`language extensions
+<http://clang.llvm.org/docs/LanguageExtensions.html#extensions-for-loop-hint-optimizations>`_
+for details.
 
 Windows Support
 ---------------
 
-- Many, many bug fixes
+- Many, many bug fixes.
+
+- Clang can now self-host using the ``msvc`` environment on x86 and x64
+  Windows. This means that Microsoft C++ ABI is more or less feature-complete,
+  minus exception support.
 
-- Basic support for DWARF debug information in COFF files
+- Added more MSVC compatibility hacks, such as allowing more lookup into
+  dependent bases of class templates when there is a known template pattern.
+  As a result, applications using Active Template Library (ATL) or Windows
+  Runtime Library (WRL) headers should compile correctly.
+
+- Added support for the Visual C++ ``__super`` keyword.
+
+- Added support for MSVC's ``__vectorcall`` calling convention, which is used
+  in the upcoming Visual Studio 2015 STL.
+
+- Added basic support for DWARF debug information in COFF files.
 
 
 C Language Changes in Clang
 ---------------------------
 
-...
+- The default language mode for C compilations with Clang has been changed from
+  C99 with GNU extensions to C11 with GNU extensions. C11 is largely
+  backwards-compatible with C99, but if you want to restore the former behavior
+  you can do so with the `-std=gnu99` flag.
 
 C11 Feature Support
 ^^^^^^^^^^^^^^^^^^^
 
-...
+- Clang now provides an implementation of the standard C11 header `<stdatomic.h>`.
 
 C++ Language Changes in Clang
 -----------------------------
 
+- An `upcoming change to C++ <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html>_`
+  changes the semantics of certain deductions of `auto` from a braced initializer
+  list. Following the intent of the C++ committee, this change will be applied to
+  our C++11 and C++14 modes as well as our experimental C++17 mode. Clang 3.6
+  does not yet implement this change, but to provide a transition period, it
+  warns on constructs whose meaning will change. The fix in all cases is to
+  add an `=` prior to the left brace.
+
 - Clang now supports putting identical constructors and destructors in
   the C5/D5 comdat, reducing code duplication.
 
 - Clang will put individual ``.init_array/.ctors`` sections in
   comdats, reducing code duplication and speeding up startup.
 
-C++11 Feature Support
+
+C++17 Feature Support
 ^^^^^^^^^^^^^^^^^^^^^
 
-...
-
-Objective-C Language Changes in Clang
--------------------------------------
+Clang has experimental support for some proposed C++1z (tentatively, C++17)
+features. This support can be enabled using the `-std=c++1z` flag.
 
-...
+New in Clang 3.6 is support for:
 
-OpenCL C Language Changes in Clang
-----------------------------------
+- Fold expressions
 
-...
+- `u8` character literals
 
-Internal API Changes
---------------------
+- Nested namespace definitions: `namespace A::B { ... }` as a shorthand for
+  `namespace A { namespace B { ... } }`
+
+- Attributes for namespaces and enumerators
 
-These are major API changes that have happened since the 3.5 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.
+- Constant evaluation for all non-type template arguments
 
-...
-
-libclang
---------
+Note that these features may be changed or removed in future Clang releases
+without notice.
 
-...
-
-Static Analyzer
----------------
+Support for `for (identifier : range)` as a synonym for
+`for (auto &&identifier : range)` has been removed as it is no longer currently
+considered for C++17.
 
-...
+For more details on C++ feature support, see
+`the C++ status page <http://clang.llvm.org/cxx_status.html>`_.
 
-Core Analysis Improvements
-==========================
 
-- ...
+OpenMP Language Changes in Clang
+--------------------------------
 
-New Issues Found
-================
-
-- ...
+Clang 3.6 contains codegen for many individual OpenMP pragmas, but combinations are not completed yet.
+We plan to continue codegen code drop aiming for completion in 3.7. Please see this link for up-to-date
+`status <https://github.com/clang-omp/clang/wiki/Status-of-supported-OpenMP-constructs>_`.
+LLVM's OpenMP runtime library, originally developed by Intel, has been modified to work on ARM, PowerPC,
+as well as X86. The Runtime Library's compatibility with GCC 4.9 is improved
+- missed entry points added, barrier and fork/join code improved, one more type of barrier enabled.
+Support for ppc64le architecture is now available and automatically detected when using cmake system.
+Using makefile the new "ppc64le" arch type is available.
+Contributors to this work include AMD, Argonne National Lab., IBM, Intel, Texas Instruments, University of Houston and many others.
 
-Python Binding Changes
-----------------------
-
-The following methods have been added:
-
--  ...
-
-Significant Known Problems
-==========================
 
 Additional Information
 ======================
diff -r deee07d1532e -r 68baa04305c2 external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticGroups.td
--- a/external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticGroups.td      Wed Mar 18 17:23:18 2015 +0000
+++ b/external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticGroups.td      Wed Mar 18 17:26:33 2015 +0000
@@ -749,3 +749,6 @@
 // A warning group for warnings about code that clang accepts when
 // compiling CUDA C/C++ but which is not compatible with the CUDA spec.
 def CudaCompat : DiagGroup<"cuda-compat">;
+
+// A warning group for things that will change semantics in the future.
+def FutureCompat : DiagGroup<"future-compat">;
diff -r deee07d1532e -r 68baa04305c2 external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticParseKinds.td
--- a/external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticParseKinds.td  Wed Mar 18 17:23:18 2015 +0000
+++ b/external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticParseKinds.td  Wed Mar 18 17:26:33 2015 +0000
@@ -802,6 +802,10 @@
 def err_lambda_missing_parens : Error<
   "lambda requires '()' before %select{'mutable'|return type|"
   "attribute specifier}0">;
+def warn_init_capture_direct_list_init : Warning<
+  "direct list initialization of a lambda init-capture will change meaning in "
+  "a future version of Clang; insert an '=' to avoid a change in behavior">,
+  InGroup<FutureCompat>;
 
 // Availability attribute
 def err_expected_version : Error<
diff -r deee07d1532e -r 68baa04305c2 external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticSemaKinds.td
--- a/external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticSemaKinds.td   Wed Mar 18 17:23:18 2015 +0000
+++ b/external/bsd/llvm/dist/clang/include/clang/Basic/DiagnosticSemaKinds.td   Wed Mar 18 17:26:33 2015 +0000
@@ -1635,6 +1635,10 @@
 def err_auto_var_init_paren_braces : Error<
   "cannot deduce type for variable %0 with type %1 from "
   "parenthesized initializer list">;
+def warn_auto_var_direct_list_init : Warning<
+  "direct list initialization of a variable with a deduced type will change "
+  "meaning in a future version of Clang; insert an '=' to avoid a change in "
+  "behavior">, InGroup<FutureCompat>;
 def err_auto_new_ctor_multiple_expressions : Error<
   "new expression for type %0 contains multiple constructor arguments">;
 def err_auto_missing_trailing_return : Error<
@@ -6968,6 +6972,11 @@
   "vcombine_%0%1(vcreate_%0%1(), vcreate_%0%1()) to initialize from integer "
   "constants">;
 
+def err_builtin_longjmp_unsupported : Error<
+  "__builtin_longjmp is not supported for the current target">;



Home | Main Index | Thread Index | Old Index