164ab3302SCarolineConcatto //===-- lib/Common/idioms.cpp ---------------------------------------------===// 264ab3302SCarolineConcatto // 364ab3302SCarolineConcatto // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 464ab3302SCarolineConcatto // See https://llvm.org/LICENSE.txt for license information. 564ab3302SCarolineConcatto // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 664ab3302SCarolineConcatto // 764ab3302SCarolineConcatto //===----------------------------------------------------------------------===// 864ab3302SCarolineConcatto 964ab3302SCarolineConcatto #include "flang/Common/idioms.h" 1064ab3302SCarolineConcatto #include <cstdarg> 1164ab3302SCarolineConcatto #include <cstdio> 1264ab3302SCarolineConcatto #include <cstdlib> 1364ab3302SCarolineConcatto 1464ab3302SCarolineConcatto namespace Fortran::common { 1564ab3302SCarolineConcatto die(const char * msg,...)1664ab3302SCarolineConcatto[[noreturn]] void die(const char *msg, ...) { 1764ab3302SCarolineConcatto va_list ap; 1864ab3302SCarolineConcatto va_start(ap, msg); 1964ab3302SCarolineConcatto std::fputs("\nfatal internal error: ", stderr); 2064ab3302SCarolineConcatto std::vfprintf(stderr, msg, ap); 2164ab3302SCarolineConcatto va_end(ap); 2264ab3302SCarolineConcatto fputc('\n', stderr); 2364ab3302SCarolineConcatto std::abort(); 2464ab3302SCarolineConcatto } 2564ab3302SCarolineConcatto 26*1f879005STim Keith } // namespace Fortran::common 27