From: Eric Schweitz Date: Tue, 6 Oct 2020 16:31:16 +0000 (-0700) Subject: [NFC][flang] Add the header file Todo.h. This file is being upstreamed to satisfy... X-Git-Tag: llvmorg-13-init~9969 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f8294072fbc75cc4f6d0e1c3e16f9849aae3771;p=platform%2Fupstream%2Fllvm.git [NFC][flang] Add the header file Todo.h. This file is being upstreamed to satisfy dependencies and enable continued progress on lowering of OpenMP, OpenACC, etc. Differential Revision: https://reviews.llvm.org/D88909 --- diff --git a/flang/include/flang/Lower/Todo.h b/flang/include/flang/Lower/Todo.h new file mode 100644 index 0000000..4da24f3 --- /dev/null +++ b/flang/include/flang/Lower/Todo.h @@ -0,0 +1,49 @@ +//===-- Lower/Todo.h --------------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/ +// +//===----------------------------------------------------------------------===// + +#ifndef FORTRAN_LOWER_TODO_H +#define FORTRAN_LOWER_TODO_H + +#include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/raw_ostream.h" +#include + +// This is throw-away code used to mark areas of the code that have not yet been +// developed. + +#undef TODO + +#ifdef NDEBUG + +// In a release build, just give a message and exit. +#define TODO(ToDoMsg) \ + do { \ + llvm::errs() << __FILE__ << ':' << __LINE__ << ": not yet implemented " \ + << ToDoMsg << '\n'; \ + std::exit(1); \ + } while (false) + +#else + +#undef TODOQUOTE +#define TODOQUOTE(X) #X + +// In a developer build, print a message and give a backtrace. +#define TODO(ToDoMsg) \ + do { \ + llvm::report_fatal_error( \ + __FILE__ ":" TODOQUOTE(__LINE__) ": not yet implemented " ToDoMsg); \ + } while (false) + +#endif + +#endif // FORTRAN_LOWER_TODO_H