Fixing conflicting macro definitions between curses.h and the standard library.
authorNicole Rabjohn <Nicole.Rabjohn@ibm.com>
Thu, 6 Jul 2023 17:12:05 +0000 (17:12 +0000)
committerNicole Rabjohn <Nicole.Rabjohn@ibm.com>
Thu, 6 Jul 2023 17:21:08 +0000 (17:21 +0000)
commit92e4d6791f714d1d90a3341c539ee3ac24e44ab0
tree6af0d842dea5634e587a3ff11753e707ecde1271
parente61764c32ff77ae85509e56234a13a47b2d36cec
Fixing conflicting macro definitions between curses.h and the standard library.

POSIX allows certain macros to exist with generic names (i.e. refresh(), move(), and erase()) to exist in `curses.h` which conflict with functions found in std::filesystem, among others. This patch undefs the macros in question and adds them to LIBCPP_PUSH_MACROS and LIBCPP_POP_MACROS.

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D147356
60 files changed:
libcxx/include/__algorithm/adjacent_find.h
libcxx/include/__algorithm/in_out_result.h
libcxx/include/__algorithm/is_permutation.h
libcxx/include/__algorithm/iterator_operations.h
libcxx/include/__algorithm/make_heap.h
libcxx/include/__algorithm/min_element.h
libcxx/include/__algorithm/pop_heap.h
libcxx/include/__algorithm/pstl_backends/cpu_backends/thread.h
libcxx/include/__algorithm/push_heap.h
libcxx/include/__algorithm/sift_down.h
libcxx/include/__algorithm/unwrap_iter.h
libcxx/include/__algorithm/upper_bound.h
libcxx/include/__concepts/swappable.h
libcxx/include/__config
libcxx/include/__expected/bad_expected_access.h
libcxx/include/__expected/expected.h
libcxx/include/__expected/unexpected.h
libcxx/include/__functional/perfect_forward.h
libcxx/include/__iterator/advance.h
libcxx/include/__iterator/back_insert_iterator.h
libcxx/include/__iterator/bounded_iter.h
libcxx/include/__iterator/common_iterator.h
libcxx/include/__iterator/counted_iterator.h
libcxx/include/__iterator/erase_if_container.h
libcxx/include/__iterator/front_insert_iterator.h
libcxx/include/__iterator/insert_iterator.h
libcxx/include/__iterator/iter_move.h
libcxx/include/__iterator/iter_swap.h
libcxx/include/__iterator/move_iterator.h
libcxx/include/__iterator/move_sentinel.h
libcxx/include/__memory/allocation_guard.h
libcxx/include/__memory/compressed_pair.h
libcxx/include/__memory/construct_at.h
libcxx/include/__memory/ranges_construct_at.h
libcxx/include/__memory/unique_ptr.h
libcxx/include/__memory/uses_allocator_construction.h
libcxx/include/__node_handle
libcxx/include/__numeric/accumulate.h
libcxx/include/__numeric/adjacent_difference.h
libcxx/include/__numeric/exclusive_scan.h
libcxx/include/__numeric/inner_product.h
libcxx/include/__numeric/partial_sum.h
libcxx/include/__ranges/as_rvalue_view.h
libcxx/include/__ranges/common_view.h
libcxx/include/__ranges/owning_view.h
libcxx/include/__ranges/range_adaptor.h
libcxx/include/__ranges/subrange.h
libcxx/include/__stop_token/intrusive_shared_ptr.h
libcxx/include/__undef_macros
libcxx/include/__utility/exception_guard.h
libcxx/include/__utility/exchange.h
libcxx/include/__utility/move.h
libcxx/include/__utility/pair.h
libcxx/include/__utility/swap.h
libcxx/include/any
libcxx/include/experimental/propagate_const
libcxx/include/optional
libcxx/include/scoped_allocator
libcxx/include/tuple
libcxx/test/libcxx/nasty_macros.gen.py