1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // UNSUPPORTED: c++03, c++11, c++14, c++17 10 11 // Due to C++17 inline variables ASAN flags this test as containing an ODR 12 // violation because Clock::is_steady is defined in both the dylib and this TU. 13 // UNSUPPORTED: asan 14 15 // <chrono> 16 17 // file_clock 18 19 // check clock invariants 20 21 #include <chrono> 22 #include <type_traits> 23 24 #include "test_macros.h" 25 26 template <class T> 27 void test(const T &) {} 28 29 int main(int, char**) 30 { 31 typedef std::chrono::file_clock C; 32 static_assert((std::is_same<C::rep, C::duration::rep>::value), ""); 33 static_assert((std::is_same<C::period, C::duration::period>::value), ""); 34 static_assert((std::is_same<C::duration, C::time_point::duration>::value), ""); 35 static_assert((std::is_same<C::time_point::clock, C>::value), ""); 36 static_assert(!C::is_steady, ""); 37 test(std::chrono::file_clock::is_steady); 38 39 return 0; 40 } 41