From e3e24ad25fb1df489518d83550cde0a40c7c562c Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 10 Apr 2019 18:52:24 +0000 Subject: [PATCH] Fix header inclusion order failures Summary: See https://bugs.llvm.org/show_bug.cgi?id=41432 Subscribers: libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D60525 llvm-svn: 358121 --- pstl/include/pstl/internal/glue_algorithm_defs.h | 1 + pstl/include/pstl/internal/glue_algorithm_impl.h | 2 ++ pstl/include/pstl/internal/glue_memory_impl.h | 3 +++ pstl/include/pstl/internal/glue_numeric_defs.h | 2 ++ pstl/include/pstl/internal/glue_numeric_impl.h | 1 + .../header_inclusion_order_algorithm_0.pass.cpp | 24 ++++++++++++++++++++++ .../header_inclusion_order_algorithm_1.pass.cpp | 24 ++++++++++++++++++++++ .../pstl/header_inclusion_order_memory_0.pass.cpp | 24 ++++++++++++++++++++++ .../pstl/header_inclusion_order_memory_1.pass.cpp | 24 ++++++++++++++++++++++ .../pstl/header_inclusion_order_numeric_0.pass.cpp | 24 ++++++++++++++++++++++ .../pstl/header_inclusion_order_numeric_1.pass.cpp | 24 ++++++++++++++++++++++ 11 files changed, 153 insertions(+) create mode 100644 pstl/test/pstl/header_inclusion_order_algorithm_0.pass.cpp create mode 100644 pstl/test/pstl/header_inclusion_order_algorithm_1.pass.cpp create mode 100644 pstl/test/pstl/header_inclusion_order_memory_0.pass.cpp create mode 100644 pstl/test/pstl/header_inclusion_order_memory_1.pass.cpp create mode 100644 pstl/test/pstl/header_inclusion_order_numeric_0.pass.cpp create mode 100644 pstl/test/pstl/header_inclusion_order_numeric_1.pass.cpp diff --git a/pstl/include/pstl/internal/glue_algorithm_defs.h b/pstl/include/pstl/internal/glue_algorithm_defs.h index c622ed3..14faaae 100644 --- a/pstl/include/pstl/internal/glue_algorithm_defs.h +++ b/pstl/include/pstl/internal/glue_algorithm_defs.h @@ -11,6 +11,7 @@ #define __PSTL_glue_algorithm_defs_H #include +#include #include "execution_defs.h" diff --git a/pstl/include/pstl/internal/glue_algorithm_impl.h b/pstl/include/pstl/internal/glue_algorithm_impl.h index 2e0b818..56c1194 100644 --- a/pstl/include/pstl/internal/glue_algorithm_impl.h +++ b/pstl/include/pstl/internal/glue_algorithm_impl.h @@ -17,6 +17,8 @@ #include "algorithm_fwd.h" #include "numeric_fwd.h" /* count and count_if use __pattern_transform_reduce */ +#include "execution_impl.h" + namespace std { diff --git a/pstl/include/pstl/internal/glue_memory_impl.h b/pstl/include/pstl/internal/glue_memory_impl.h index 4cde9ba..9798b80 100644 --- a/pstl/include/pstl/internal/glue_memory_impl.h +++ b/pstl/include/pstl/internal/glue_memory_impl.h @@ -10,9 +10,12 @@ #ifndef __PSTL_glue_memory_impl_H #define __PSTL_glue_memory_impl_H +#include "execution_defs.h" #include "utils.h" #include "algorithm_fwd.h" +#include "execution_impl.h" + namespace std { diff --git a/pstl/include/pstl/internal/glue_numeric_defs.h b/pstl/include/pstl/internal/glue_numeric_defs.h index 55187f1..03d06c9 100644 --- a/pstl/include/pstl/internal/glue_numeric_defs.h +++ b/pstl/include/pstl/internal/glue_numeric_defs.h @@ -10,6 +10,8 @@ #ifndef __PSTL_glue_numeric_defs_H #define __PSTL_glue_numeric_defs_H +#include + #include "execution_defs.h" namespace std diff --git a/pstl/include/pstl/internal/glue_numeric_impl.h b/pstl/include/pstl/internal/glue_numeric_impl.h index bde0b03..c462891e1 100644 --- a/pstl/include/pstl/internal/glue_numeric_impl.h +++ b/pstl/include/pstl/internal/glue_numeric_impl.h @@ -14,6 +14,7 @@ #include "utils.h" #include "numeric_fwd.h" +#include "execution_impl.h" namespace std { diff --git a/pstl/test/pstl/header_inclusion_order_algorithm_0.pass.cpp b/pstl/test/pstl/header_inclusion_order_algorithm_0.pass.cpp new file mode 100644 index 0000000..0b0d79b --- /dev/null +++ b/pstl/test/pstl/header_inclusion_order_algorithm_0.pass.cpp @@ -0,0 +1,24 @@ +// -*- C++ -*- +//===-- header_inclusion_order_algorithm_0.pass.cpp -----------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "support/pstl_test_config.h" + +#ifdef PSTL_STANDALONE_TESTS +#include "pstl/execution" +#include "pstl/algorithm" +#else +#include +#include +#endif // PSTL_STANDALONE_TESTS + +int32_t +main() +{ + return 0; +} diff --git a/pstl/test/pstl/header_inclusion_order_algorithm_1.pass.cpp b/pstl/test/pstl/header_inclusion_order_algorithm_1.pass.cpp new file mode 100644 index 0000000..e346a3b --- /dev/null +++ b/pstl/test/pstl/header_inclusion_order_algorithm_1.pass.cpp @@ -0,0 +1,24 @@ +// -*- C++ -*- +//===-- header_inclusion_order_algorithm_1.pass.cpp -----------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "support/pstl_test_config.h" + +#ifdef PSTL_STANDALONE_TESTS +#include "pstl/algorithm" +#include "pstl/execution" +#else +#include +#include +#endif // PSTL_STANDALONE_TESTS + +int32_t +main() +{ + return 0; +} diff --git a/pstl/test/pstl/header_inclusion_order_memory_0.pass.cpp b/pstl/test/pstl/header_inclusion_order_memory_0.pass.cpp new file mode 100644 index 0000000..1a8a117 --- /dev/null +++ b/pstl/test/pstl/header_inclusion_order_memory_0.pass.cpp @@ -0,0 +1,24 @@ +// -*- C++ -*- +//===-- header_inclusion_order_memory_0.pass.cpp --------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "support/pstl_test_config.h" + +#ifdef PSTL_STANDALONE_TESTS +#include "pstl/execution" +#include "pstl/memory" +#else +#include +#include +#endif // PSTL_STANDALONE_TESTS + +int32_t +main() +{ + return 0; +} diff --git a/pstl/test/pstl/header_inclusion_order_memory_1.pass.cpp b/pstl/test/pstl/header_inclusion_order_memory_1.pass.cpp new file mode 100644 index 0000000..2e34323 --- /dev/null +++ b/pstl/test/pstl/header_inclusion_order_memory_1.pass.cpp @@ -0,0 +1,24 @@ +// -*- C++ -*- +//===-- header_inclusion_order_memory_1.pass.cpp --------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "support/pstl_test_config.h" + +#ifdef PSTL_STANDALONE_TESTS +#include "pstl/memory" +#include "pstl/execution" +#else +#include +#include +#endif // PSTL_STANDALONE_TESTS + +int32_t +main() +{ + return 0; +} diff --git a/pstl/test/pstl/header_inclusion_order_numeric_0.pass.cpp b/pstl/test/pstl/header_inclusion_order_numeric_0.pass.cpp new file mode 100644 index 0000000..1ff596e --- /dev/null +++ b/pstl/test/pstl/header_inclusion_order_numeric_0.pass.cpp @@ -0,0 +1,24 @@ +// -*- C++ -*- +//===-- header_inclusion_order_numeric_0.pass.cpp -------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "support/pstl_test_config.h" + +#ifdef PSTL_STANDALONE_TESTS +#include "pstl/execution" +#include "pstl/numeric" +#else +#include +#include +#endif // PSTL_STANDALONE_TESTS + +int32_t +main() +{ + return 0; +} diff --git a/pstl/test/pstl/header_inclusion_order_numeric_1.pass.cpp b/pstl/test/pstl/header_inclusion_order_numeric_1.pass.cpp new file mode 100644 index 0000000..3c5b8cf --- /dev/null +++ b/pstl/test/pstl/header_inclusion_order_numeric_1.pass.cpp @@ -0,0 +1,24 @@ +// -*- C++ -*- +//===-- header_inclusion_order_numeric_0.pass.cpp -------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "support/pstl_test_config.h" + +#ifdef PSTL_STANDALONE_TESTS +#include "pstl/numeric" +#include "pstl/execution" +#else +#include +#include +#endif // PSTL_STANDALONE_TESTS + +int32_t +main() +{ + return 0; +} -- 2.7.4