12bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber//===----------------------------------------------------------------------===//
22bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber//
32bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber//                     The LLVM Compiler Infrastructure
42bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber//
52bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber// This file is dual licensed under the MIT and the University of Illinois Open
62bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber// Source Licenses. See LICENSE.TXT for details.
72bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber//
82bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber//===----------------------------------------------------------------------===//
92bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber
102bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#include <ctime>
112bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#include <type_traits>
122bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber
132bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#ifndef NULL
142bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#error NULL not defined
152bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#endif
162bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber
172bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#ifndef CLOCKS_PER_SEC
182bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#error CLOCKS_PER_SEC not defined
192bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber#endif
202bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber
212bfdd428c56c7524d1a11979f200a1762866032dAndreas Huberint main()
222bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber{
232bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    std::clock_t c = 0;
242bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    std::size_t s = 0;
2581dd60e0340ddcf7f1d5fb80b6c30906fabf201aOscar Rydhé    std::time_t t = 0;
262bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    std::tm tm = {0};
271b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    char str[3];
2849694688c82214f5fd9e969e177c9e126a240a26Andreas Huber    static_assert((std::is_same<decltype(std::clock()), std::clock_t>::value), "");
292bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    static_assert((std::is_same<decltype(std::difftime(t,t)), double>::value), "");
302bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    static_assert((std::is_same<decltype(std::mktime(&tm)), std::time_t>::value), "");
312bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    static_assert((std::is_same<decltype(std::time(&t)), std::time_t>::value), "");
322bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    static_assert((std::is_same<decltype(std::asctime(&tm)), char*>::value), "");
33cfc3083927df14bf82403b20a45ae303a01c39f5Roger Jönsson    static_assert((std::is_same<decltype(std::ctime(&t)), char*>::value), "");
34cfc3083927df14bf82403b20a45ae303a01c39f5Roger Jönsson    static_assert((std::is_same<decltype(std::gmtime(&t)), std::tm*>::value), "");
352bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber    static_assert((std::is_same<decltype(std::localtime(&t)), std::tm*>::value), "");
365ab368af38fefacc4009e3ab1c1bbd00e62b3bcfAndreas Huber    static_assert((std::is_same<decltype(std::strftime(str,s,"",&tm)), std::size_t>::value), "");
371b86fe063badb5f28c467ade39be0f4008688947Andreas Huber}
382bfdd428c56c7524d1a11979f200a1762866032dAndreas Huber