svn commit: r351402 - in projects/clang900-import/contrib/libc++: . include include/experimental include/ext src src/experimental src/filesystem src/include src/support/runtime
Dimitry Andric
dim at FreeBSD.org
Thu Aug 22 19:49:53 UTC 2019
Author: dim
Date: Thu Aug 22 19:49:51 2019
New Revision: 351402
URL: https://svnweb.freebsd.org/changeset/base/351402
Log:
Merge libc++ trunk r366426, resolve conflicts, and add FREEBSD-Xlist.
Added:
projects/clang900-import/contrib/libc++/FREEBSD-Xlist (contents, props changed)
projects/clang900-import/contrib/libc++/include/fenv.h
- copied unchanged from r351401, vendor/libc++/dist/include/fenv.h
projects/clang900-import/contrib/libc++/src/CMakeLists.txt
- copied unchanged from r351401, vendor/libc++/dist/src/CMakeLists.txt
projects/clang900-import/contrib/libc++/src/condition_variable_destructor.cpp
- copied unchanged from r351401, vendor/libc++/dist/src/condition_variable_destructor.cpp
projects/clang900-import/contrib/libc++/src/mutex_destructor.cpp
- copied unchanged from r351401, vendor/libc++/dist/src/mutex_destructor.cpp
projects/clang900-import/contrib/libc++/src/support/runtime/stdexcept_default.ipp
- copied unchanged from r351401, vendor/libc++/dist/src/support/runtime/stdexcept_default.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp
- copied unchanged from r351401, vendor/libc++/dist/src/support/runtime/stdexcept_vcruntime.ipp
Deleted:
projects/clang900-import/contrib/libc++/include/experimental/any
projects/clang900-import/contrib/libc++/include/experimental/chrono
projects/clang900-import/contrib/libc++/include/experimental/numeric
projects/clang900-import/contrib/libc++/include/experimental/optional
projects/clang900-import/contrib/libc++/include/experimental/ratio
projects/clang900-import/contrib/libc++/include/experimental/string_view
projects/clang900-import/contrib/libc++/include/experimental/system_error
projects/clang900-import/contrib/libc++/include/experimental/tuple
Modified:
projects/clang900-import/contrib/libc++/LICENSE.TXT
projects/clang900-import/contrib/libc++/include/__bit_reference
projects/clang900-import/contrib/libc++/include/__bsd_locale_defaults.h
projects/clang900-import/contrib/libc++/include/__bsd_locale_fallbacks.h
projects/clang900-import/contrib/libc++/include/__config
projects/clang900-import/contrib/libc++/include/__debug
projects/clang900-import/contrib/libc++/include/__errc
projects/clang900-import/contrib/libc++/include/__functional_03
projects/clang900-import/contrib/libc++/include/__functional_base
projects/clang900-import/contrib/libc++/include/__functional_base_03
projects/clang900-import/contrib/libc++/include/__hash_table
projects/clang900-import/contrib/libc++/include/__libcpp_version
projects/clang900-import/contrib/libc++/include/__locale
projects/clang900-import/contrib/libc++/include/__mutex_base
projects/clang900-import/contrib/libc++/include/__node_handle
projects/clang900-import/contrib/libc++/include/__nullptr
projects/clang900-import/contrib/libc++/include/__sso_allocator
projects/clang900-import/contrib/libc++/include/__std_stream
projects/clang900-import/contrib/libc++/include/__string
projects/clang900-import/contrib/libc++/include/__threading_support
projects/clang900-import/contrib/libc++/include/__tree
projects/clang900-import/contrib/libc++/include/__tuple
projects/clang900-import/contrib/libc++/include/__undef_macros
projects/clang900-import/contrib/libc++/include/algorithm
projects/clang900-import/contrib/libc++/include/any
projects/clang900-import/contrib/libc++/include/array
projects/clang900-import/contrib/libc++/include/atomic
projects/clang900-import/contrib/libc++/include/bit
projects/clang900-import/contrib/libc++/include/bitset
projects/clang900-import/contrib/libc++/include/cassert
projects/clang900-import/contrib/libc++/include/ccomplex
projects/clang900-import/contrib/libc++/include/cctype
projects/clang900-import/contrib/libc++/include/cerrno
projects/clang900-import/contrib/libc++/include/cfenv
projects/clang900-import/contrib/libc++/include/cfloat
projects/clang900-import/contrib/libc++/include/charconv
projects/clang900-import/contrib/libc++/include/chrono
projects/clang900-import/contrib/libc++/include/cinttypes
projects/clang900-import/contrib/libc++/include/ciso646
projects/clang900-import/contrib/libc++/include/climits
projects/clang900-import/contrib/libc++/include/clocale
projects/clang900-import/contrib/libc++/include/cmath
projects/clang900-import/contrib/libc++/include/codecvt
projects/clang900-import/contrib/libc++/include/compare
projects/clang900-import/contrib/libc++/include/complex
projects/clang900-import/contrib/libc++/include/complex.h
projects/clang900-import/contrib/libc++/include/condition_variable
projects/clang900-import/contrib/libc++/include/csetjmp
projects/clang900-import/contrib/libc++/include/csignal
projects/clang900-import/contrib/libc++/include/cstdarg
projects/clang900-import/contrib/libc++/include/cstdbool
projects/clang900-import/contrib/libc++/include/cstddef
projects/clang900-import/contrib/libc++/include/cstdint
projects/clang900-import/contrib/libc++/include/cstdio
projects/clang900-import/contrib/libc++/include/cstdlib
projects/clang900-import/contrib/libc++/include/cstring
projects/clang900-import/contrib/libc++/include/ctgmath
projects/clang900-import/contrib/libc++/include/ctime
projects/clang900-import/contrib/libc++/include/ctype.h
projects/clang900-import/contrib/libc++/include/cwchar
projects/clang900-import/contrib/libc++/include/cwctype
projects/clang900-import/contrib/libc++/include/deque
projects/clang900-import/contrib/libc++/include/errno.h
projects/clang900-import/contrib/libc++/include/exception
projects/clang900-import/contrib/libc++/include/experimental/__config
projects/clang900-import/contrib/libc++/include/experimental/__memory
projects/clang900-import/contrib/libc++/include/experimental/algorithm
projects/clang900-import/contrib/libc++/include/experimental/coroutine
projects/clang900-import/contrib/libc++/include/experimental/deque
projects/clang900-import/contrib/libc++/include/experimental/filesystem
projects/clang900-import/contrib/libc++/include/experimental/forward_list
projects/clang900-import/contrib/libc++/include/experimental/functional
projects/clang900-import/contrib/libc++/include/experimental/iterator
projects/clang900-import/contrib/libc++/include/experimental/list
projects/clang900-import/contrib/libc++/include/experimental/map
projects/clang900-import/contrib/libc++/include/experimental/memory_resource
projects/clang900-import/contrib/libc++/include/experimental/propagate_const
projects/clang900-import/contrib/libc++/include/experimental/regex
projects/clang900-import/contrib/libc++/include/experimental/set
projects/clang900-import/contrib/libc++/include/experimental/simd
projects/clang900-import/contrib/libc++/include/experimental/string
projects/clang900-import/contrib/libc++/include/experimental/type_traits
projects/clang900-import/contrib/libc++/include/experimental/unordered_map
projects/clang900-import/contrib/libc++/include/experimental/unordered_set
projects/clang900-import/contrib/libc++/include/experimental/utility
projects/clang900-import/contrib/libc++/include/experimental/vector
projects/clang900-import/contrib/libc++/include/ext/__hash
projects/clang900-import/contrib/libc++/include/ext/hash_map
projects/clang900-import/contrib/libc++/include/ext/hash_set
projects/clang900-import/contrib/libc++/include/filesystem
projects/clang900-import/contrib/libc++/include/float.h
projects/clang900-import/contrib/libc++/include/forward_list
projects/clang900-import/contrib/libc++/include/fstream
projects/clang900-import/contrib/libc++/include/functional
projects/clang900-import/contrib/libc++/include/future
projects/clang900-import/contrib/libc++/include/initializer_list
projects/clang900-import/contrib/libc++/include/inttypes.h
projects/clang900-import/contrib/libc++/include/iomanip
projects/clang900-import/contrib/libc++/include/ios
projects/clang900-import/contrib/libc++/include/iosfwd
projects/clang900-import/contrib/libc++/include/iostream
projects/clang900-import/contrib/libc++/include/istream
projects/clang900-import/contrib/libc++/include/iterator
projects/clang900-import/contrib/libc++/include/limits
projects/clang900-import/contrib/libc++/include/limits.h
projects/clang900-import/contrib/libc++/include/list
projects/clang900-import/contrib/libc++/include/locale
projects/clang900-import/contrib/libc++/include/locale.h
projects/clang900-import/contrib/libc++/include/map
projects/clang900-import/contrib/libc++/include/math.h
projects/clang900-import/contrib/libc++/include/memory
projects/clang900-import/contrib/libc++/include/module.modulemap
projects/clang900-import/contrib/libc++/include/mutex
projects/clang900-import/contrib/libc++/include/new
projects/clang900-import/contrib/libc++/include/numeric
projects/clang900-import/contrib/libc++/include/optional
projects/clang900-import/contrib/libc++/include/ostream
projects/clang900-import/contrib/libc++/include/queue
projects/clang900-import/contrib/libc++/include/random
projects/clang900-import/contrib/libc++/include/ratio
projects/clang900-import/contrib/libc++/include/regex
projects/clang900-import/contrib/libc++/include/scoped_allocator
projects/clang900-import/contrib/libc++/include/set
projects/clang900-import/contrib/libc++/include/setjmp.h
projects/clang900-import/contrib/libc++/include/shared_mutex
projects/clang900-import/contrib/libc++/include/span
projects/clang900-import/contrib/libc++/include/sstream
projects/clang900-import/contrib/libc++/include/stack
projects/clang900-import/contrib/libc++/include/stdbool.h
projects/clang900-import/contrib/libc++/include/stddef.h
projects/clang900-import/contrib/libc++/include/stdexcept
projects/clang900-import/contrib/libc++/include/stdint.h
projects/clang900-import/contrib/libc++/include/stdio.h
projects/clang900-import/contrib/libc++/include/stdlib.h
projects/clang900-import/contrib/libc++/include/streambuf
projects/clang900-import/contrib/libc++/include/string
projects/clang900-import/contrib/libc++/include/string.h
projects/clang900-import/contrib/libc++/include/string_view
projects/clang900-import/contrib/libc++/include/strstream
projects/clang900-import/contrib/libc++/include/system_error
projects/clang900-import/contrib/libc++/include/tgmath.h
projects/clang900-import/contrib/libc++/include/thread
projects/clang900-import/contrib/libc++/include/tuple
projects/clang900-import/contrib/libc++/include/type_traits
projects/clang900-import/contrib/libc++/include/typeindex
projects/clang900-import/contrib/libc++/include/typeinfo
projects/clang900-import/contrib/libc++/include/unordered_map
projects/clang900-import/contrib/libc++/include/unordered_set
projects/clang900-import/contrib/libc++/include/utility
projects/clang900-import/contrib/libc++/include/valarray
projects/clang900-import/contrib/libc++/include/variant
projects/clang900-import/contrib/libc++/include/vector
projects/clang900-import/contrib/libc++/include/version
projects/clang900-import/contrib/libc++/include/wchar.h
projects/clang900-import/contrib/libc++/include/wctype.h
projects/clang900-import/contrib/libc++/src/algorithm.cpp
projects/clang900-import/contrib/libc++/src/any.cpp
projects/clang900-import/contrib/libc++/src/bind.cpp
projects/clang900-import/contrib/libc++/src/charconv.cpp
projects/clang900-import/contrib/libc++/src/chrono.cpp
projects/clang900-import/contrib/libc++/src/condition_variable.cpp
projects/clang900-import/contrib/libc++/src/debug.cpp
projects/clang900-import/contrib/libc++/src/exception.cpp
projects/clang900-import/contrib/libc++/src/experimental/memory_resource.cpp
projects/clang900-import/contrib/libc++/src/filesystem/directory_iterator.cpp
projects/clang900-import/contrib/libc++/src/filesystem/filesystem_common.h
projects/clang900-import/contrib/libc++/src/filesystem/int128_builtins.cpp
projects/clang900-import/contrib/libc++/src/filesystem/operations.cpp
projects/clang900-import/contrib/libc++/src/functional.cpp
projects/clang900-import/contrib/libc++/src/future.cpp
projects/clang900-import/contrib/libc++/src/hash.cpp
projects/clang900-import/contrib/libc++/src/include/apple_availability.h
projects/clang900-import/contrib/libc++/src/include/atomic_support.h
projects/clang900-import/contrib/libc++/src/include/config_elast.h
projects/clang900-import/contrib/libc++/src/include/refstring.h
projects/clang900-import/contrib/libc++/src/ios.cpp
projects/clang900-import/contrib/libc++/src/iostream.cpp
projects/clang900-import/contrib/libc++/src/locale.cpp
projects/clang900-import/contrib/libc++/src/memory.cpp
projects/clang900-import/contrib/libc++/src/mutex.cpp
projects/clang900-import/contrib/libc++/src/new.cpp
projects/clang900-import/contrib/libc++/src/optional.cpp
projects/clang900-import/contrib/libc++/src/random.cpp
projects/clang900-import/contrib/libc++/src/regex.cpp
projects/clang900-import/contrib/libc++/src/shared_mutex.cpp
projects/clang900-import/contrib/libc++/src/stdexcept.cpp
projects/clang900-import/contrib/libc++/src/string.cpp
projects/clang900-import/contrib/libc++/src/strstream.cpp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_fallback.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_glibcxx.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_libcxxabi.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_libcxxrt.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_msvc.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_pointer_cxxabi.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_pointer_glibcxx.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/exception_pointer_unimplemented.ipp
projects/clang900-import/contrib/libc++/src/support/runtime/new_handler_fallback.ipp
projects/clang900-import/contrib/libc++/src/system_error.cpp
projects/clang900-import/contrib/libc++/src/thread.cpp
projects/clang900-import/contrib/libc++/src/typeinfo.cpp
projects/clang900-import/contrib/libc++/src/utility.cpp
projects/clang900-import/contrib/libc++/src/valarray.cpp
projects/clang900-import/contrib/libc++/src/variant.cpp
projects/clang900-import/contrib/libc++/src/vector.cpp
Directory Properties:
projects/clang900-import/contrib/libc++/ (props changed)
Added: projects/clang900-import/contrib/libc++/FREEBSD-Xlist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/clang900-import/contrib/libc++/FREEBSD-Xlist Thu Aug 22 19:49:51 2019 (r351402)
@@ -0,0 +1,22 @@
+# $FreeBSD$
+.arcconfig
+.clang-format
+.gitignore
+CMakeLists.txt
+NOTES.TXT
+TODO.TXT
+appveyor-reqs-install.cmd
+appveyor.yml
+benchmarks/
+cmake/
+docs/
+fuzzing/
+include/CMakeLists.txt
+include/__config_site.in
+include/support/
+lib/
+src/support/solaris/
+src/support/win32/
+test/
+utils/
+www/
Modified: projects/clang900-import/contrib/libc++/LICENSE.TXT
==============================================================================
--- projects/clang900-import/contrib/libc++/LICENSE.TXT Thu Aug 22 19:26:11 2019 (r351401)
+++ projects/clang900-import/contrib/libc++/LICENSE.TXT Thu Aug 22 19:49:51 2019 (r351402)
@@ -1,5 +1,240 @@
==============================================================================
-libc++ License
+The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
+==============================================================================
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+---- LLVM Exceptions to the Apache 2.0 License ----
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into an Object form of such source code, you
+may redistribute such embedded portions in such Object form without complying
+with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
+
+In addition, if you combine or link compiled forms of this Software with
+software that is licensed under the GPLv2 ("Combined Software") and if a
+court of competent jurisdiction determines that the patent provision (Section
+3), the indemnity provision (Section 9) or other Section of the License
+conflicts with the conditions of the GPLv2, you may retroactively and
+prospectively choose to deem waived or otherwise exclude such Section(s) of
+the License, but only in their entirety and only with respect to the Combined
+Software.
+
+==============================================================================
+Software from third parties included in the LLVM Project:
+==============================================================================
+The LLVM Project contains third party software which is under different license
+terms. All such code will be identified clearly using at least one of two
+mechanisms:
+1) It will be in a separate directory tree with its own `LICENSE.txt` or
+ `LICENSE` file at the top containing the specific license and restrictions
+ which apply to that software, or
+2) It will contain specific license and restriction terms at the top of every
+ file.
+
+==============================================================================
+Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
==============================================================================
The libc++ library is dual licensed under both the University of Illinois
Modified: projects/clang900-import/contrib/libc++/include/__bit_reference
==============================================================================
--- projects/clang900-import/contrib/libc++/include/__bit_reference Thu Aug 22 19:26:11 2019 (r351401)
+++ projects/clang900-import/contrib/libc++/include/__bit_reference Thu Aug 22 19:49:51 2019 (r351402)
@@ -1,11 +1,10 @@
// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
-// The LLVM Compiler Infrastructure
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP___BIT_REFERENCE
@@ -69,7 +68,7 @@ class __bit_reference (public)
_LIBCPP_INLINE_VISIBILITY void flip() _NOEXCEPT {*__seg_ ^= __mask_;}
_LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, false> operator&() const _NOEXCEPT
- {return __bit_iterator<_Cp, false>(__seg_, static_cast<unsigned>(__ctz(__mask_)));}
+ {return __bit_iterator<_Cp, false>(__seg_, static_cast<unsigned>(__libcpp_ctz(__mask_)));}
private:
_LIBCPP_INLINE_VISIBILITY
__bit_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT
@@ -141,7 +140,7 @@ class __bit_const_reference (public)
{return static_cast<bool>(*__seg_ & __mask_);}
_LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, true> operator&() const _NOEXCEPT
- {return __bit_iterator<_Cp, true>(__seg_, static_cast<unsigned>(__ctz(__mask_)));}
+ {return __bit_iterator<_Cp, true>(__seg_, static_cast<unsigned>(__libcpp_ctz(__mask_)));}
private:
_LIBCPP_INLINE_VISIBILITY
_LIBCPP_CONSTEXPR
@@ -168,7 +167,7 @@ __find_bool_true(__bit_iterator<_Cp, _IsConst> __first
__storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
__storage_type __b = *__first.__seg_ & __m;
if (__b)
- return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));
+ return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__libcpp_ctz(__b)));
if (__n == __dn)
return __first + __n;
__n -= __dn;
@@ -177,14 +176,14 @@ __find_bool_true(__bit_iterator<_Cp, _IsConst> __first
// do middle whole words
for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)
if (*__first.__seg_)
- return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(*__first.__seg_)));
+ return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__libcpp_ctz(*__first.__seg_)));
// do last partial word
if (__n > 0)
{
__storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
__storage_type __b = *__first.__seg_ & __m;
if (__b)
- return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));
+ return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__libcpp_ctz(__b)));
}
return _It(__first.__seg_, static_cast<unsigned>(__n));
}
@@ -204,7 +203,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __firs
__storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
__storage_type __b = ~*__first.__seg_ & __m;
if (__b)
- return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));
+ return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__libcpp_ctz(__b)));
if (__n == __dn)
return __first + __n;
__n -= __dn;
@@ -215,7 +214,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __firs
{
__storage_type __b = ~*__first.__seg_;
if (__b)
- return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));
+ return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__libcpp_ctz(__b)));
}
// do last partial word
if (__n > 0)
@@ -223,7 +222,7 @@ __find_bool_false(__bit_iterator<_Cp, _IsConst> __firs
__storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
__storage_type __b = ~*__first.__seg_ & __m;
if (__b)
- return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));
+ return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__libcpp_ctz(__b)));
}
return _It(__first.__seg_, static_cast<unsigned>(__n));
}
@@ -255,18 +254,18 @@ __count_bool_true(__bit_iterator<_Cp, _IsConst> __firs
__storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);
__storage_type __dn = _VSTD::min(__clz_f, __n);
__storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
- __r = _VSTD::__popcount(*__first.__seg_ & __m);
+ __r = _VSTD::__libcpp_popcount(*__first.__seg_ & __m);
__n -= __dn;
++__first.__seg_;
}
// do middle whole words
for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)
- __r += _VSTD::__popcount(*__first.__seg_);
+ __r += _VSTD::__libcpp_popcount(*__first.__seg_);
// do last partial word
if (__n > 0)
{
__storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
- __r += _VSTD::__popcount(*__first.__seg_ & __m);
+ __r += _VSTD::__libcpp_popcount(*__first.__seg_ & __m);
}
return __r;
}
@@ -286,18 +285,18 @@ __count_bool_false(__bit_iterator<_Cp, _IsConst> __fir
__storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);
__storage_type __dn = _VSTD::min(__clz_f, __n);
__storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
- __r = _VSTD::__popcount(~*__first.__seg_ & __m);
+ __r = _VSTD::__libcpp_popcount(~*__first.__seg_ & __m);
__n -= __dn;
++__first.__seg_;
}
// do middle whole words
for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)
- __r += _VSTD::__popcount(~*__first.__seg_);
+ __r += _VSTD::__libcpp_popcount(~*__first.__seg_);
// do last partial word
if (__n > 0)
{
__storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
- __r += _VSTD::__popcount(~*__first.__seg_ & __m);
+ __r += _VSTD::__libcpp_popcount(~*__first.__seg_ & __m);
}
return __r;
}
Modified: projects/clang900-import/contrib/libc++/include/__bsd_locale_defaults.h
==============================================================================
--- projects/clang900-import/contrib/libc++/include/__bsd_locale_defaults.h Thu Aug 22 19:26:11 2019 (r351401)
+++ projects/clang900-import/contrib/libc++/include/__bsd_locale_defaults.h Thu Aug 22 19:49:51 2019 (r351402)
@@ -1,10 +1,9 @@
// -*- C++ -*-
//===---------------------- __bsd_locale_defaults.h -----------------------===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// The BSDs have lots of *_l functions. We don't want to define those symbols
Modified: projects/clang900-import/contrib/libc++/include/__bsd_locale_fallbacks.h
==============================================================================
--- projects/clang900-import/contrib/libc++/include/__bsd_locale_fallbacks.h Thu Aug 22 19:26:11 2019 (r351401)
+++ projects/clang900-import/contrib/libc++/include/__bsd_locale_fallbacks.h Thu Aug 22 19:49:51 2019 (r351402)
@@ -1,10 +1,9 @@
// -*- C++ -*-
//===---------------------- __bsd_locale_fallbacks.h ----------------------===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// The BSDs have lots of *_l functions. This file provides reimplementations
Modified: projects/clang900-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang900-import/contrib/libc++/include/__config Thu Aug 22 19:26:11 2019 (r351401)
+++ projects/clang900-import/contrib/libc++/include/__config Thu Aug 22 19:49:51 2019 (r351402)
@@ -1,11 +1,10 @@
// -*- C++ -*-
//===--------------------------- __config ---------------------------------===//
//
-// The LLVM Compiler Infrastructure
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP_CONFIG
@@ -33,12 +32,16 @@
# define _GNUC_VER_NEW 0
#endif
-#define _LIBCPP_VERSION 8000
+#define _LIBCPP_VERSION 9000
#ifndef _LIBCPP_ABI_VERSION
# define _LIBCPP_ABI_VERSION 1
#endif
+#ifndef __STDC_HOSTED__
+# define _LIBCPP_FREESTANDING
+#endif
+
#ifndef _LIBCPP_STD_VER
# if __cplusplus <= 201103L
# define _LIBCPP_STD_VER 11
@@ -93,10 +96,12 @@
// Enable optimized version of __do_get_(un)signed which avoids redundant copies.
# define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
// Use the smallest possible integer type to represent the index of the variant.
-// Previously libc++ used "unsigned int" exclusivly.
+// Previously libc++ used "unsigned int" exclusively.
# define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION
// Unstable attempt to provide a more optimized std::function
# define _LIBCPP_ABI_OPTIMIZED_FUNCTION
+// All the regex constants must be distinct and nonzero.
+# define _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO
#elif _LIBCPP_ABI_VERSION == 1
# if !defined(_LIBCPP_OBJECT_FORMAT_COFF)
// Enable compiling copies of now inline methods into the dylib to support
@@ -182,6 +187,10 @@
#define _LIBCPP_CLANG_VER 0
#endif
+#if defined(_LIBCPP_COMPILER_GCC) && __cplusplus < 201103L
+#error "libc++ does not support using GCC with C++03. Please enable C++11"
+#endif
+
// FIXME: ABI detection should be done via compiler builtin macros. This
// is just a placeholder until Clang implements such macros. For now assume
// that Windows compilers pretending to be MSVC++ target the Microsoft ABI,
@@ -201,6 +210,10 @@
# endif
#endif
+#if defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_NO_VCRUNTIME)
+# define _LIBCPP_ABI_VCRUNTIME
+#endif
+
// Need to detect which libc we're using if we're on Linux.
#if defined(__linux__)
# include <features.h>
@@ -257,7 +270,7 @@
# define _LIBCPP_WIN32API
# define _LIBCPP_LITTLE_ENDIAN
# define _LIBCPP_SHORT_WCHAR 1
-// Both MinGW and native MSVC provide a "MSVC"-like enviroment
+// Both MinGW and native MSVC provide a "MSVC"-like environment
# define _LIBCPP_MSVCRT_LIKE
// If mingw not explicitly detected, assume using MS C runtime only if
// a MS compatibility version is specified.
@@ -298,7 +311,7 @@
// random data even when using sandboxing mechanisms such as chroots,
// Capsicum, etc.
# define _LIBCPP_USING_ARC4_RANDOM
-#elif defined(__Fuchsia__)
+#elif defined(__Fuchsia__) || defined(__wasi__)
# define _LIBCPP_USING_GETENTROPY
#elif defined(__native_client__)
// NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access,
@@ -332,7 +345,7 @@
# if defined(__FreeBSD__)
# define _LIBCPP_HAS_QUICK_EXIT
# define _LIBCPP_HAS_C11_FEATURES
-# elif defined(__Fuchsia__)
+# elif defined(__Fuchsia__) || defined(__wasi__)
# define _LIBCPP_HAS_QUICK_EXIT
# define _LIBCPP_HAS_TIMESPEC_GET
# define _LIBCPP_HAS_C11_FEATURES
@@ -400,10 +413,6 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_NO_STRONG_ENUMS
#endif
-#if !(__has_feature(cxx_decltype))
-#define _LIBCPP_HAS_NO_DECLTYPE
-#endif
-
#if __has_feature(cxx_attributes)
# define _LIBCPP_NORETURN [[noreturn]]
#else
@@ -434,18 +443,6 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_NO_VARIADICS
#endif
-#if !(__has_feature(cxx_generalized_initializers))
-#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-#endif
-
-#if __has_feature(is_base_of)
-#define _LIBCPP_HAS_IS_BASE_OF
-#endif
-
-#if __has_feature(is_final)
-#define _LIBCPP_HAS_IS_FINAL
-#endif
-
// Objective-C++ features (opt-in)
#if __has_feature(objc_arc)
#define _LIBCPP_HAS_OBJC_ARC
@@ -455,10 +452,6 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_OBJC_ARC_WEAK
#endif
-#if !(__has_feature(cxx_constexpr))
-#define _LIBCPP_HAS_NO_CONSTEXPR
-#endif
-
#if !(__has_feature(cxx_relaxed_constexpr))
#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR
#endif
@@ -471,14 +464,6 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_NO_NOEXCEPT
#endif
-#if __has_feature(underlying_type)
-#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T)
-#endif
-
-#if __has_feature(is_literal)
-#define _LIBCPP_IS_LITERAL(T) __is_literal(T)
-#endif
-
#if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer)
#define _LIBCPP_HAS_NO_ASAN
#endif
@@ -510,69 +495,20 @@ typedef __char32_t char32_t;
#define _LIBCPP_NORETURN __attribute__((noreturn))
-#if _GNUC_VER >= 407
-#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T)
-#define _LIBCPP_IS_LITERAL(T) __is_literal_type(T)
-#define _LIBCPP_HAS_IS_FINAL
-#endif
-
-#if defined(__GNUC__) && _GNUC_VER >= 403
-#define _LIBCPP_HAS_IS_BASE_OF
-#endif
-
#if !__EXCEPTIONS && !defined(_LIBCPP_NO_EXCEPTIONS)
#define _LIBCPP_NO_EXCEPTIONS
#endif
-// constexpr was added to GCC in 4.6.
-#if _GNUC_VER < 406
-# define _LIBCPP_HAS_NO_CONSTEXPR
-// Can only use constexpr in c++11 mode.
-#elif !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
-# define _LIBCPP_HAS_NO_CONSTEXPR
-#endif
-
// Determine if GCC supports relaxed constexpr
#if !defined(__cpp_constexpr) || __cpp_constexpr < 201304L
#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR
#endif
-// GCC 5 will support variable templates
+// GCC 5 supports variable templates
#if !defined(__cpp_variable_templates) || __cpp_variable_templates < 201304L
#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
#endif
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
-
-#define _LIBCPP_HAS_NO_DECLTYPE
-#define _LIBCPP_HAS_NO_NULLPTR
-#define _LIBCPP_HAS_NO_UNICODE_CHARS
-#define _LIBCPP_HAS_NO_VARIADICS
-#define _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#define _LIBCPP_HAS_NO_STRONG_ENUMS
-#define _LIBCPP_HAS_NO_NOEXCEPT
-
-#else // __GXX_EXPERIMENTAL_CXX0X__
-
-#if _GNUC_VER < 403
-#define _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#endif
-
-
-#if _GNUC_VER < 404
-#define _LIBCPP_HAS_NO_DECLTYPE
-#define _LIBCPP_HAS_NO_UNICODE_CHARS
-#define _LIBCPP_HAS_NO_VARIADICS
-#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-#endif // _GNUC_VER < 404
-
-#if _GNUC_VER < 406
-#define _LIBCPP_HAS_NO_NOEXCEPT
-#define _LIBCPP_HAS_NO_NULLPTR
-#endif
-
-#endif // __GXX_EXPERIMENTAL_CXX0X__
-
#if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__)
#define _LIBCPP_HAS_NO_ASAN
#endif
@@ -597,16 +533,12 @@ typedef __char32_t char32_t;
#error "MSVC versions prior to Visual Studio 2015 are not supported"
#endif
-#define _LIBCPP_HAS_IS_BASE_OF
-#define _LIBCPP_HAS_NO_CONSTEXPR
#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR
#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
-#define _LIBCPP_HAS_NO_NOEXCEPT
#define __alignof__ __alignof
#define _LIBCPP_NORETURN __declspec(noreturn)
#define _ALIGNAS(x) __declspec(align(x))
#define _ALIGNAS_TYPE(x) alignas(x)
-#define _LIBCPP_HAS_NO_VARIADICS
#define _LIBCPP_WEAK
@@ -623,12 +555,7 @@ typedef __char32_t char32_t;
#define _ATTRIBUTE(x) __attribute__((x))
#define _LIBCPP_NORETURN __attribute__((noreturn))
-#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-#define _LIBCPP_HAS_NO_NOEXCEPT
-#define _LIBCPP_HAS_NO_NULLPTR
#define _LIBCPP_HAS_NO_UNICODE_CHARS
-#define _LIBCPP_HAS_IS_BASE_OF
-#define _LIBCPP_HAS_IS_FINAL
#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
#if defined(_AIX)
@@ -659,8 +586,13 @@ typedef __char32_t char32_t;
# define _LIBCPP_EXPORTED_FROM_ABI
#elif defined(_LIBCPP_BUILDING_LIBRARY)
# define _LIBCPP_DLL_VIS __declspec(dllexport)
-# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS
-# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS
+# if defined(__MINGW32__)
+# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_DLL_VIS
+# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS
+# else
+# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS
+# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS
+# endif
# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_DLL_VIS
# define _LIBCPP_EXPORTED_FROM_ABI __declspec(dllexport)
#else
@@ -777,7 +709,7 @@ typedef __char32_t char32_t;
#else
// Try to approximate the effect of exclude_from_explicit_instantiation
// (which is that entities are not assumed to be provided by explicit
- // template instantitations in the dylib) by always inlining those entities.
+ // template instantiations in the dylib) by always inlining those entities.
# define _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION _LIBCPP_ALWAYS_INLINE
#endif
@@ -789,6 +721,16 @@ typedef __char32_t char32_t;
# endif
#endif
+#ifndef _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT
+# ifdef _LIBCPP_OBJECT_FORMAT_COFF // Windows binaries can't merge typeinfos.
+# define _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT 0
+#else
+// TODO: This isn't strictly correct on ELF platforms due to llvm.org/PR37398
+// And we should consider defaulting to OFF.
+# define _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT 1
+#endif
+#endif
+
#ifndef _LIBCPP_HIDE_FROM_ABI
# if _LIBCPP_HIDE_FROM_ABI_PER_TU
# define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE
@@ -843,22 +785,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD
# define _NOEXCEPT_(x)
#endif
-#if defined(_LIBCPP_DEBUG_USE_EXCEPTIONS)
-# if !defined(_LIBCPP_DEBUG)
-# error cannot use _LIBCPP_DEBUG_USE_EXCEPTIONS unless _LIBCPP_DEBUG is defined
-# endif
-# ifdef _LIBCPP_HAS_NO_NOEXCEPT
-# define _NOEXCEPT_DEBUG
-# define _NOEXCEPT_DEBUG_(x)
-# else
-# define _NOEXCEPT_DEBUG noexcept(false)
-# define _NOEXCEPT_DEBUG_(x) noexcept(false)
-# endif
-#else
-# define _NOEXCEPT_DEBUG _NOEXCEPT
-# define _NOEXCEPT_DEBUG_(x) _NOEXCEPT_(x)
-#endif
-
#ifdef _LIBCPP_HAS_NO_UNICODE_CHARS
typedef unsigned short char16_t;
typedef unsigned int char32_t;
@@ -869,30 +795,11 @@ typedef unsigned int char32_t;
#endif
#ifdef _LIBCPP_CXX03_LANG
-# if __has_extension(c_static_assert)
-# define static_assert(__b, __m) _Static_assert(__b, __m)
-# else
-extern "C++" {
-template <bool> struct __static_assert_test;
-template <> struct __static_assert_test<true> {};
-template <unsigned> struct __static_assert_check {};
-}
-# define static_assert(__b, __m) \
- typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
- _LIBCPP_CONCAT(__t, __LINE__)
-# endif // __has_extension(c_static_assert)
+# define static_assert(...) _Static_assert(__VA_ARGS__)
+# define decltype(...) __decltype(__VA_ARGS__)
#endif // _LIBCPP_CXX03_LANG
-#ifdef _LIBCPP_HAS_NO_DECLTYPE
-// GCC 4.6 provides __decltype in all standard modes.
-# if __has_keyword(__decltype) || _LIBCPP_CLANG_VER >= 304 || _GNUC_VER >= 406
-# define decltype(__x) __decltype(__x)
-# else
-# define decltype(__x) __typeof__(__x)
-# endif
-#endif
-
-#ifdef _LIBCPP_HAS_NO_CONSTEXPR
+#ifdef _LIBCPP_CXX03_LANG
# define _LIBCPP_CONSTEXPR
#else
# define _LIBCPP_CONSTEXPR constexpr
@@ -911,9 +818,9 @@ template <unsigned> struct __static_assert_check {};
#endif
#ifdef __GNUC__
-# define _NOALIAS __attribute__((__malloc__))
+# define _LIBCPP_NOALIAS __attribute__((__malloc__))
#else
-# define _NOALIAS
+# define _LIBCPP_NOALIAS
#endif
#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) || \
@@ -966,10 +873,6 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__;
#endif
-#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__)
-#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63)
-#endif
-
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCPP_MSVCRT_LIKE) || \
defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__)
#define _LIBCPP_LOCALE__L_EXTENSIONS 1
@@ -990,13 +893,10 @@ template <unsigned> struct __static_assert_check {};
// for align_val_t were added in 19.12, aka VS 2017 version 15.3.
#if defined(_LIBCPP_MSVCRT) && defined(_MSC_VER) && _MSC_VER < 1912
# define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
-#elif defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_NO_VCRUNTIME)
-# define _LIBCPP_DEFER_NEW_TO_VCRUNTIME
-# if !defined(__cpp_aligned_new)
- // We're defering to Microsoft's STL to provide aligned new et al. We don't
- // have it unless the language feature test macro is defined.
-# define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
-# endif
+#elif defined(_LIBCPP_ABI_VCRUNTIME) && !defined(__cpp_aligned_new)
+ // We're deferring to Microsoft's STL to provide aligned new et al. We don't
+ // have it unless the language feature test macro is defined.
+# define _LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
#endif
#if defined(__APPLE__)
@@ -1025,8 +925,10 @@ template <unsigned> struct __static_assert_check {};
#endif
// Deprecation macros.
-// Deprecations warnings are only enabled when _LIBCPP_ENABLE_DEPRECATION_WARNINGS is defined.
-#if defined(_LIBCPP_ENABLE_DEPRECATION_WARNINGS)
+//
+// Deprecations warnings are always enabled, except when users explicitly opt-out
+// by defining _LIBCPP_DISABLE_DEPRECATION_WARNINGS.
+#if !defined(_LIBCPP_DISABLE_DEPRECATION_WARNINGS)
# if __has_attribute(deprecated)
# define _LIBCPP_DEPRECATED __attribute__ ((deprecated))
# elif _LIBCPP_STD_VER > 11
@@ -1128,6 +1030,12 @@ template <unsigned> struct __static_assert_check {};
#endif
#endif
+#if __has_attribute(no_destroy)
+# define _LIBCPP_NO_DESTROY __attribute__((__no_destroy__))
+#else
+# define _LIBCPP_NO_DESTROY
+#endif
+
#ifndef _LIBCPP_HAS_NO_ASAN
_LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container(
const void *, const void *, const void *, const void *);
@@ -1158,6 +1066,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
!defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)
# if defined(__FreeBSD__) || \
defined(__Fuchsia__) || \
+ defined(__wasi__) || \
defined(__NetBSD__) || \
defined(__linux__) || \
defined(__GNU__) || \
@@ -1188,6 +1097,23 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
_LIBCPP_HAS_NO_THREADS is defined.
#endif
+// The Apple, glibc, and Bionic implementation of pthreads implements
+// pthread_mutex_destroy as nop for regular mutexes. Additionally, Win32
+// mutexes have no destroy mechanism.
+// TODO(EricWF): Enable this optimization on Apple and Bionic platforms after
+// speaking to their respective stakeholders.
+#if (defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && defined(__GLIBC__)) \
+ || defined(_LIBCPP_HAS_THREAD_API_WIN32)
+# define _LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION
+#endif
+
+// Destroying a condvar is a nop on Windows.
+// TODO(EricWF): This is potentially true for some pthread implementations
+// as well.
+#if defined(_LIBCPP_HAS_THREAD_API_WIN32)
+# define _LIBCPP_HAS_TRIVIAL_CONDVAR_DESTRUCTION
+#endif
+
// Systems that use capability-based security (FreeBSD with Capsicum,
// Nuxi CloudABI) may only provide local filesystem access (using *at()).
// Functions like open(), rename(), unlink() and stat() should not be
@@ -1204,7 +1130,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
#endif
#if defined(__BIONIC__) || defined(__CloudABI__) || \
- defined(__Fuchsia__) || defined(_LIBCPP_HAS_MUSL_LIBC)
+ defined(__Fuchsia__) || defined(__wasi__) || defined(_LIBCPP_HAS_MUSL_LIBC)
#define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE
#endif
@@ -1216,13 +1142,22 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
#if __has_feature(cxx_atomic) || __has_extension(c_atomic) || __has_keyword(_Atomic)
# define _LIBCPP_HAS_C_ATOMIC_IMP
-#elif _GNUC_VER > 407
+#elif defined(_LIBCPP_COMPILER_GCC)
# define _LIBCPP_HAS_GCC_ATOMIC_IMP
#endif
-#if (!defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP)) \
+#if (!defined(_LIBCPP_HAS_C_ATOMIC_IMP) && \
+ !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP) && \
+ !defined(_LIBCPP_HAS_EXTERNAL_ATOMIC_IMP)) \
|| defined(_LIBCPP_HAS_NO_THREADS)
-#define _LIBCPP_HAS_NO_ATOMIC_HEADER
+# define _LIBCPP_HAS_NO_ATOMIC_HEADER
+#else
+# ifndef _LIBCPP_ATOMIC_FLAG_TYPE
+# define _LIBCPP_ATOMIC_FLAG_TYPE bool
+# endif
+# ifdef _LIBCPP_FREESTANDING
+# define _LIBCPP_ATOMIC_ONLY_USE_BUILTINS
+# endif
#endif
#ifndef _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK
@@ -1250,6 +1185,10 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
#define _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF
#endif
+#if !__has_builtin(__builtin_is_constant_evaluated) && _GNUC_VER < 900
+#define _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED
+#endif
+
#if !defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS)
# if defined(_LIBCPP_MSVCRT) || defined(_NEWLIB_VERSION)
# define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS
@@ -1277,6 +1216,21 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
# define _LIBCPP_FALLTHROUGH() ((void)0)
#endif
+#if __has_attribute(__nodebug__)
+#define _LIBCPP_NODEBUG __attribute__((__nodebug__))
+#else
+#define _LIBCPP_NODEBUG
+#endif
+
+#ifndef _LIBCPP_NODEBUG_TYPE
+#if __has_attribute(__nodebug__) && \
+ (defined(_LIBCPP_COMPILER_CLANG) && _LIBCPP_CLANG_VER >= 900)
+#define _LIBCPP_NODEBUG_TYPE __attribute__((nodebug))
+#else
+#define _LIBCPP_NODEBUG_TYPE
+#endif
+#endif // !defined(_LIBCPP_NODEBUG_TYPE)
+
#if defined(_LIBCPP_ABI_MICROSOFT) && \
(defined(_LIBCPP_COMPILER_MSVC) || __has_declspec_attribute(empty_bases))
# define _LIBCPP_DECLSPEC_EMPTY_BASES __declspec(empty_bases)
@@ -1312,7 +1266,8 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
#if !defined(_LIBCPP_BUILDING_LIBRARY) && \
!defined(_LIBCPP_DISABLE_AVAILABILITY) && \
__has_feature(attribute_availability_with_strict) && \
- __has_feature(attribute_availability_in_templates)
+ __has_feature(attribute_availability_in_templates) && \
+ __has_extension(pragma_clang_attribute_external_declaration)
# ifdef __APPLE__
# define _LIBCPP_USE_AVAILABILITY_APPLE
# endif
@@ -1355,6 +1310,21 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
# define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR \
__attribute__((availability(macosx,strict,introduced=10.9))) \
__attribute__((availability(ios,strict,introduced=7.0)))
+# define _LIBCPP_AVAILABILITY_FILESYSTEM \
+ __attribute__((availability(macosx,strict,introduced=10.15))) \
+ __attribute__((availability(ios,strict,introduced=13.0))) \
+ __attribute__((availability(tvos,strict,introduced=13.0))) \
+ __attribute__((availability(watchos,strict,introduced=6.0)))
+# define _LIBCPP_AVAILABILITY_FILESYSTEM_PUSH \
+ _Pragma("clang attribute push(__attribute__((availability(macosx,strict,introduced=10.15))), apply_to=any(function,record))") \
+ _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \
+ _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \
+ _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))")
+# define _LIBCPP_AVAILABILITY_FILESYSTEM_POP \
+ _Pragma("clang attribute pop") \
+ _Pragma("clang attribute pop") \
+ _Pragma("clang attribute pop") \
+ _Pragma("clang attribute pop")
#else
# define _LIBCPP_AVAILABILITY_SHARED_MUTEX
# define _LIBCPP_AVAILABILITY_BAD_VARIANT_ACCESS
@@ -1366,6 +1336,9 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
# define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE
# define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY
# define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR
+# define _LIBCPP_AVAILABILITY_FILESYSTEM
+# define _LIBCPP_AVAILABILITY_FILESYSTEM_PUSH
+# define _LIBCPP_AVAILABILITY_FILESYSTEM_POP
#endif
// Define availability that depends on _LIBCPP_NO_EXCEPTIONS.
Modified: projects/clang900-import/contrib/libc++/include/__debug
==============================================================================
--- projects/clang900-import/contrib/libc++/include/__debug Thu Aug 22 19:26:11 2019 (r351401)
+++ projects/clang900-import/contrib/libc++/include/__debug Thu Aug 22 19:49:51 2019 (r351402)
@@ -1,17 +1,17 @@
// -*- C++ -*-
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list