178b4b5ccSLouis Dionne //===----------------------------------------------------------------------===// 278b4b5ccSLouis Dionne // 378b4b5ccSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 478b4b5ccSLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 578b4b5ccSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 678b4b5ccSLouis Dionne // 778b4b5ccSLouis Dionne //===----------------------------------------------------------------------===// 878b4b5ccSLouis Dionne 9*b2d24947SLouis Dionne // UNSUPPORTED: c++03 10*b2d24947SLouis Dionne 1178b4b5ccSLouis Dionne #include <string> 1278b4b5ccSLouis Dionne #include <system_error> 1378b4b5ccSLouis Dionne 1478b4b5ccSLouis Dionne #include "benchmark/benchmark.h" 1578b4b5ccSLouis Dionne 1678b4b5ccSLouis Dionne static void BM_SystemErrorWithMessage(benchmark::State& state) { 1778b4b5ccSLouis Dionne for (auto _ : state) { 1878b4b5ccSLouis Dionne std::error_code ec{}; 1978b4b5ccSLouis Dionne benchmark::DoNotOptimize(std::system_error{ec, ""}); 2078b4b5ccSLouis Dionne } 2178b4b5ccSLouis Dionne } 2278b4b5ccSLouis Dionne BENCHMARK(BM_SystemErrorWithMessage); 2378b4b5ccSLouis Dionne 2478b4b5ccSLouis Dionne static void BM_SystemErrorWithoutMessage(benchmark::State& state) { 2578b4b5ccSLouis Dionne for (auto _ : state) { 2678b4b5ccSLouis Dionne std::error_code ec{}; 2778b4b5ccSLouis Dionne benchmark::DoNotOptimize(std::system_error{ec}); 2878b4b5ccSLouis Dionne } 2978b4b5ccSLouis Dionne } 3078b4b5ccSLouis Dionne BENCHMARK(BM_SystemErrorWithoutMessage); 3178b4b5ccSLouis Dionne 3278b4b5ccSLouis Dionne BENCHMARK_MAIN(); 33