[libc++] Mark <filesystem> as unavailable on Apple platforms using pragmas
authorLouis Dionne <ldionne@apple.com>
Wed, 20 Mar 2019 21:18:14 +0000 (21:18 +0000)
committerLouis Dionne <ldionne@apple.com>
Wed, 20 Mar 2019 21:18:14 +0000 (21:18 +0000)
commitfa0573027f4a24b4dd356e002055ed2818b915a1
tree7be98b56d2def55e0230b5e8835265ff322b852d
parent7c6ce35c1d2158fb8bd3e4e977cc36c6b7db632a
[libc++] Mark <filesystem> as unavailable on Apple platforms using pragmas

Summary:
Also add the corresponding XFAILs to tests that require filesystem.
The approach taken to mark <filesystem> as unavailable in this patch
is to mark all the header as unavailable using #pragma clang attribute.
Marking each declaration using the attribute is more intrusive and
does not provide a lot of value right now because pretty much everything
in <filesystem> requires dylib support, often transitively.

This is an alternative to https://reviews.llvm.org/D59093.
A similar (but partial) patch was already applied in r356558.

Reviewers: mclow.lists, EricWF, serge-sans-paille

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D59224

llvm-svn: 356616
libcxx/include/__config
libcxx/include/chrono
libcxx/include/filesystem
libcxx/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp
libcxx/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp
libcxx/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp