1fcaf7f86SDimitry Andric //===- Error.h --------------------------------------------------*- C++ -*-===// 2fcaf7f86SDimitry Andric // 3fcaf7f86SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4fcaf7f86SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5fcaf7f86SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6fcaf7f86SDimitry Andric // 7fcaf7f86SDimitry Andric //===----------------------------------------------------------------------===// 8fcaf7f86SDimitry Andric 9fcaf7f86SDimitry Andric #ifndef LLVM_TOOLS_LLVM_DWARFUTIL_ERROR_H 10fcaf7f86SDimitry Andric #define LLVM_TOOLS_LLVM_DWARFUTIL_ERROR_H 11fcaf7f86SDimitry Andric 12fcaf7f86SDimitry Andric #include "llvm/ADT/STLExtras.h" 13fcaf7f86SDimitry Andric #include "llvm/ADT/StringRef.h" 14fcaf7f86SDimitry Andric #include "llvm/Support/Debug.h" 15fcaf7f86SDimitry Andric #include "llvm/Support/Error.h" 16fcaf7f86SDimitry Andric #include "llvm/Support/Format.h" 17fcaf7f86SDimitry Andric #include "llvm/Support/WithColor.h" 18fcaf7f86SDimitry Andric #include "llvm/Support/raw_ostream.h" 19*06c3fb27SDimitry Andric #include "llvm/TargetParser/Triple.h" 20fcaf7f86SDimitry Andric 21fcaf7f86SDimitry Andric namespace llvm { 22fcaf7f86SDimitry Andric namespace dwarfutil { 23fcaf7f86SDimitry Andric 24fcaf7f86SDimitry Andric inline void error(Error Err, StringRef Prefix = "") { 25fcaf7f86SDimitry Andric handleAllErrors(std::move(Err), [&](ErrorInfoBase &Info) { 26fcaf7f86SDimitry Andric WithColor::error(errs(), Prefix) << Info.message() << '\n'; 27fcaf7f86SDimitry Andric }); 28fcaf7f86SDimitry Andric std::exit(EXIT_FAILURE); 29fcaf7f86SDimitry Andric } 30fcaf7f86SDimitry Andric 31fcaf7f86SDimitry Andric inline void warning(const Twine &Message, StringRef Prefix = "") { 32fcaf7f86SDimitry Andric WithColor::warning(errs(), Prefix) << Message << '\n'; 33fcaf7f86SDimitry Andric } 34fcaf7f86SDimitry Andric verbose(const Twine & Message,bool Verbose)35fcaf7f86SDimitry Andricinline void verbose(const Twine &Message, bool Verbose) { 36fcaf7f86SDimitry Andric if (Verbose) 37fcaf7f86SDimitry Andric outs() << Message << '\n'; 38fcaf7f86SDimitry Andric } 39fcaf7f86SDimitry Andric 40fcaf7f86SDimitry Andric } // end of namespace dwarfutil 41fcaf7f86SDimitry Andric } // end of namespace llvm 42fcaf7f86SDimitry Andric 43fcaf7f86SDimitry Andric #endif // LLVM_TOOLS_LLVM_DWARFUTIL_ERROR_H 44