diff options
author | David Zarzycki <dave@znu.io> | 2019-09-26 11:12:29 +0000 |
---|---|---|
committer | David Zarzycki <dave@znu.io> | 2019-09-26 11:12:29 +0000 |
commit | a0686015106c2a04e85af82a4687895e12a4531c (patch) | |
tree | bda83302744f2ae76ac406ff7c067f9667f5e00f /libcxx/test | |
parent | 2dcee966ad618437bbc9ad5a81f76507a678d512 (diff) | |
download | bcm5719-llvm-a0686015106c2a04e85af82a4687895e12a4531c.tar.gz bcm5719-llvm-a0686015106c2a04e85af82a4687895e12a4531c.zip |
[libcxx] Do not implicitly #include assert.h
Users should only get the assert() macros if they explicitly include
them.
Found after switching from the GNU C++ stdlib to the LLVM C++ stdlib.
llvm-svn: 372963
Diffstat (limited to 'libcxx/test')
6 files changed, 178 insertions, 2 deletions
diff --git a/libcxx/test/libcxx/no_assert_include.sh.cpp b/libcxx/test/libcxx/no_assert_include.sh.cpp new file mode 100644 index 00000000000..25e3477b03d --- /dev/null +++ b/libcxx/test/libcxx/no_assert_include.sh.cpp @@ -0,0 +1,171 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +// Ensure that none of the standard C++ headers implicitly include cassert or +// assert.h (because assert() is implemented as a macro). + +// RUN: %compile -fsyntax-only + +// Prevent <ext/hash_map> from generating deprecated warnings for this test. +#if defined(__DEPRECATED) +#undef __DEPRECATED +#endif + +// Top level headers +#include <algorithm> +#include <any> +#include <array> +#ifndef _LIBCPP_HAS_NO_THREADS +#include <atomic> +#endif +#include <bit> +#include <bitset> +#include <ccomplex> +#include <cctype> +#include <cerrno> +#include <cfenv> +#include <cfloat> +#include <charconv> +#include <chrono> +#include <cinttypes> +#include <ciso646> +#include <climits> +#include <clocale> +#include <cmath> +#include <codecvt> +#include <compare> +#include <complex> +#include <complex.h> +#include <condition_variable> +#include <csetjmp> +#include <csignal> +#include <cstdarg> +#include <cstdbool> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <ctgmath> +#include <ctime> +#include <ctype.h> +#include <cwchar> +#include <cwctype> +#include <deque> +#include <errno.h> +#include <exception> +#include <execution> +#include <fenv.h> +#include <filesystem> +#include <float.h> +#include <forward_list> +#include <fstream> +#include <functional> +#ifndef _LIBCPP_HAS_NO_THREADS +#include <future> +#endif +#include <initializer_list> +#include <inttypes.h> +#include <iomanip> +#include <ios> +#include <iosfwd> +#include <iostream> +#include <istream> +#include <iterator> +#include <limits> +#include <limits.h> +#include <list> +#include <locale> +#include <locale.h> +#include <map> +#include <math.h> +#include <memory> +#ifndef _LIBCPP_HAS_NO_THREADS +#include <mutex> +#endif +#include <new> +#include <numeric> +#include <optional> +#include <ostream> +#include <queue> +#include <random> +#include <ratio> +#include <regex> +#include <scoped_allocator> +#include <set> +#include <setjmp.h> +#ifndef _LIBCPP_HAS_NO_THREADS +#include <shared_mutex> +#endif +#include <span> +#include <sstream> +#include <stack> +#include <stdbool.h> +#include <stddef.h> +#include <stdexcept> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <streambuf> +#include <string> +#include <string.h> +#include <string_view> +#include <strstream> +#include <system_error> +#include <tgmath.h> +#ifndef _LIBCPP_HAS_NO_THREADS +#include <thread> +#endif +#include <tuple> +#include <typeindex> +#include <typeinfo> +#include <type_traits> +#include <unordered_map> +#include <unordered_set> +#include <utility> +#include <valarray> +#include <variant> +#include <vector> +#include <version> +#include <wchar.h> +#include <wctype.h> + +// experimental headers +#if __cplusplus >= 201103L +#include <experimental/algorithm> +#if defined(__cpp_coroutines) +#include <experimental/coroutine> +#endif +#include <experimental/deque> +#include <experimental/filesystem> +#include <experimental/forward_list> +#include <experimental/functional> +#include <experimental/iterator> +#include <experimental/list> +#include <experimental/map> +#include <experimental/memory_resource> +#include <experimental/propagate_const> +#include <experimental/regex> +#include <experimental/simd> +#include <experimental/set> +#include <experimental/string> +#include <experimental/type_traits> +#include <experimental/unordered_map> +#include <experimental/unordered_set> +#include <experimental/utility> +#include <experimental/vector> +#endif // __cplusplus >= 201103L + +// extended headers +#include <ext/hash_map> +#include <ext/hash_set> + +#ifdef assert +#error "Do not include cassert or assert.h in standard header files" +#endif diff --git a/libcxx/test/std/experimental/simd/simd.cons/broadcast.pass.cpp b/libcxx/test/std/experimental/simd/simd.cons/broadcast.pass.cpp index 57a6cd57ee2..b55208a4eae 100644 --- a/libcxx/test/std/experimental/simd/simd.cons/broadcast.pass.cpp +++ b/libcxx/test/std/experimental/simd/simd.cons/broadcast.pass.cpp @@ -13,8 +13,9 @@ // [simd.class] // template <class U> simd(U&& value); -#include <cstdint> #include <experimental/simd> +#include <cstdint> +#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/experimental/simd/simd.cons/generator.pass.cpp b/libcxx/test/std/experimental/simd/simd.cons/generator.pass.cpp index 7b7c883f427..59d0a9c98b9 100644 --- a/libcxx/test/std/experimental/simd/simd.cons/generator.pass.cpp +++ b/libcxx/test/std/experimental/simd/simd.cons/generator.pass.cpp @@ -15,6 +15,7 @@ #include <experimental/simd> #include <cstdint> +#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/experimental/simd/simd.cons/load.pass.cpp b/libcxx/test/std/experimental/simd/simd.cons/load.pass.cpp index 9440d5aefa3..c678bd5dbb6 100644 --- a/libcxx/test/std/experimental/simd/simd.cons/load.pass.cpp +++ b/libcxx/test/std/experimental/simd/simd.cons/load.pass.cpp @@ -13,8 +13,9 @@ // [simd.class] // template <class U, class Flags> simd(const U* mem, Flags f); -#include <cstdint> #include <experimental/simd> +#include <cstdint> +#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/experimental/simd/simd.mem/load.pass.cpp b/libcxx/test/std/experimental/simd/simd.mem/load.pass.cpp index 1a56161c5fb..bd9d563190a 100644 --- a/libcxx/test/std/experimental/simd/simd.mem/load.pass.cpp +++ b/libcxx/test/std/experimental/simd/simd.mem/load.pass.cpp @@ -15,6 +15,7 @@ #include <experimental/simd> #include <cstdint> +#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/experimental/simd/simd.mem/store.pass.cpp b/libcxx/test/std/experimental/simd/simd.mem/store.pass.cpp index 3cc3d1fa14d..ad072393424 100644 --- a/libcxx/test/std/experimental/simd/simd.mem/store.pass.cpp +++ b/libcxx/test/std/experimental/simd/simd.mem/store.pass.cpp @@ -15,6 +15,7 @@ #include <experimental/simd> #include <cstdint> +#include <cassert> #include "test_macros.h" |