1 //===-- Utils for abs and friends -------------------------------*- C++ -*-===// 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 #ifndef LLVM_LIBC_SRC_STDLIB_ABS_UTILS_H 10 #define LLVM_LIBC_SRC_STDLIB_ABS_UTILS_H 11 12 #include "utils/CPP/TypeTraits.h" 13 14 namespace __llvm_libc { 15 16 template <typename T> 17 static inline cpp::EnableIfType<cpp::IsIntegral<T>::Value, T> integerAbs(T n) { 18 if (n < 0) 19 return -n; 20 return n; 21 } 22 23 } // namespace __llvm_libc 24 25 #endif // LLVM_LIBC_SRC_STDLIB_ABS_UTILS_H 26