[libc++] Fix modules issues on OS X

First, fix a collision with the Point type from MacTypes.h, which was
reported on Slack, 2022-07-31: https://cpplang.slack.com/archives/C2X659D1B/p1659284691275889

Second, rename the meta:: namespace to types::. OSX's "/usr/include/ncurses.h"
defines a `meta` function, and is (for some reason) included in
"<SDK>/usr/include/module.modulemap", so that identifier is off-limits
for us to use in anything that compiles with -fmodules:

    libcxx/test/support/type_algorithms.h:16:11: error: redefinition of 'meta' as different kind of symbol
    namespace meta {
               ^
    <SDK>/usr/include/ncurses.h:603:28: note: previous definition is here
    extern NCURSES_EXPORT(int) meta (WINDOW *,bool);                        /* implemented */
                                ^

Finally, add a CI configuration for modules on OS X to make sure it
does not regress.

Differential Revision: https://reviews.llvm.org/D144915
This commit is contained in:
Arthur O'Dwyer
2022-07-31 12:25:05 -04:00
committed by Louis Dionne
parent 2c81d43241
commit f56dfb78aa
18 changed files with 131 additions and 117 deletions

View File

@@ -76,7 +76,7 @@ struct TestCaller {
};
TEST_CONSTEXPR_CXX20 bool test() {
meta::for_each(meta::character_types(), TestCaller());
types::for_each(types::character_types(), TestCaller());
return true;
}