13#ifndef FORTRAN_LOWER_TODO_H
14#define FORTRAN_LOWER_TODO_H
16#include "flang/Optimizer/Support/FatalError.h"
17#include "llvm/Support/ErrorHandling.h"
18#include "llvm/Support/raw_ostream.h"
30#define TODOQUOTE(X) #X
35#define GEN_TRACE false
41#define TODO_NOLOCDEFN(ToDoMsg, ToDoFile, ToDoLine, GenTrace) \
43 llvm::report_fatal_error(llvm::Twine(ToDoFile ":" TODOQUOTE( \
44 ToDoLine) ": not yet implemented: ") + \
45 llvm::Twine(ToDoMsg), \
49#define TODO_NOLOC(ToDoMsg) TODO_NOLOCDEFN(ToDoMsg, __FILE__, __LINE__, false)
50#define TODO_NOLOC_TRACE(ToDoMsg) \
51 TODO_NOLOCDEFN(ToDoMsg, __FILE__, __LINE__, GENTRACE)
54#define TODO_DEFN(MlirLoc, ToDoMsg, ToDoFile, ToDoLine, GenTrace) \
56 fir::emitFatalError(MlirLoc, \
57 llvm::Twine(ToDoFile ":" TODOQUOTE( \
58 ToDoLine) ": not yet implemented: ") + \
59 llvm::Twine(ToDoMsg), \
63#define TODO(MlirLoc, ToDoMsg) \
64 TODO_DEFN(MlirLoc, ToDoMsg, __FILE__, __LINE__, false)
65#define TODO_TRACE(MlirLoc, ToDoMsg) \
66 TODO_DEFN(MlirLoc, ToDoMsg, __FILE__, __LINE__, GEN_TRACE)