[libc++] Do not infer support for C++17 in GCC < 7

libc++'s lit configuration infers the C++ language dialect when it is
not provided by checking which -std= flags that a compiler supports.
GCC 5 and GCC 6 have a -std=c++17 flag, however, they do not have full
C++17 support. The lit configuration has hardcoded logic that removes
-std=c++1z as an option to test for GCC < 7, but not -std=c++17.

This leads to a bunch of failures when running libc++ tests with GCC 5
or GCC 6. This patch adds -std=c++17 to the list of flags that are
discarded for GCC < 7 by lit's language dialect inference.

Thanks to Bryce Adelstein Lelbach for the patch.

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

llvm-svn: 366700
This commit is contained in:
Louis Dionne 2019-07-22 16:24:48 +00:00
parent d2c0eefd5c
commit c3e452acde

View File

@ -524,6 +524,7 @@ class Configuration(object):
maj_v = int(maj_v) maj_v = int(maj_v)
if maj_v < 7: if maj_v < 7:
possible_stds.remove('c++1z') possible_stds.remove('c++1z')
possible_stds.remove('c++17')
# FIXME: How many C++14 tests actually fail under GCC 5 and 6? # FIXME: How many C++14 tests actually fail under GCC 5 and 6?
# Should we XFAIL them individually instead? # Should we XFAIL them individually instead?
if maj_v <= 6: if maj_v <= 6: