(root)/
gcc-13.2.0/
gcc/
d/
dmd/
errors.h
       1  
       2  /* Compiler implementation of the D programming language
       3   * Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
       4   * written by Walter Bright
       5   * https://www.digitalmars.com
       6   * Distributed under the Boost Software License, Version 1.0.
       7   * https://www.boost.org/LICENSE_1_0.txt
       8   * https://github.com/dlang/dmd/blob/master/src/dmd/errors.h
       9   */
      10  
      11  #pragma once
      12  
      13  #include "root/dsystem.h"
      14  
      15  struct Loc;
      16  
      17  bool isConsoleColorSupported();
      18  
      19  #if defined(__GNUC__)
      20  #define D_ATTRIBUTE_FORMAT(m, n) __attribute__((format(printf, m, n))) __attribute__((nonnull (m)))
      21  #else
      22  #define D_ATTRIBUTE_FORMAT(m, n)
      23  #endif
      24  
      25  // Print a warning, deprecation, or error, accepts printf-like format specifiers.
      26  D_ATTRIBUTE_FORMAT(2, 3) void warning(const Loc& loc, const char *format, ...);
      27  D_ATTRIBUTE_FORMAT(2, 3) void warningSupplemental(const Loc& loc, const char *format, ...);
      28  D_ATTRIBUTE_FORMAT(2, 3) void deprecation(const Loc& loc, const char *format, ...);
      29  D_ATTRIBUTE_FORMAT(2, 3) void deprecationSupplemental(const Loc& loc, const char *format, ...);
      30  D_ATTRIBUTE_FORMAT(2, 3) void error(const Loc& loc, const char *format, ...);
      31  D_ATTRIBUTE_FORMAT(4, 5) void error(const char *filename, unsigned linnum, unsigned charnum, const char *format, ...);
      32  D_ATTRIBUTE_FORMAT(2, 3) void errorSupplemental(const Loc& loc, const char *format, ...);
      33  D_ATTRIBUTE_FORMAT(2, 0) void verror(const Loc& loc, const char *format, va_list ap, const char *p1 = NULL, const char *p2 = NULL, const char *header = "Error: ");
      34  D_ATTRIBUTE_FORMAT(2, 0) void verrorSupplemental(const Loc& loc, const char *format, va_list ap);
      35  D_ATTRIBUTE_FORMAT(2, 0) void vwarning(const Loc& loc, const char *format, va_list);
      36  D_ATTRIBUTE_FORMAT(2, 0) void vwarningSupplemental(const Loc& loc, const char *format, va_list ap);
      37  D_ATTRIBUTE_FORMAT(2, 0) void vdeprecation(const Loc& loc, const char *format, va_list ap, const char *p1 = NULL, const char *p2 = NULL);
      38  D_ATTRIBUTE_FORMAT(2, 0) void vdeprecationSupplemental(const Loc& loc, const char *format, va_list ap);
      39  D_ATTRIBUTE_FORMAT(1, 2) void message(const char *format, ...);
      40  D_ATTRIBUTE_FORMAT(2, 3) void message(const Loc& loc, const char *format, ...);
      41  D_ATTRIBUTE_FORMAT(2, 0) void vmessage(const Loc& loc, const char *format, va_list ap);
      42  D_ATTRIBUTE_FORMAT(1, 2) void tip(const char *format, ...);
      43  D_ATTRIBUTE_FORMAT(1, 0) void vtip(const char *format, va_list ap);
      44  
      45  #if defined(__GNUC__) || defined(__clang__)
      46  #define D_ATTRIBUTE_NORETURN __attribute__((noreturn))
      47  #elif _MSC_VER
      48  #define D_ATTRIBUTE_NORETURN __declspec(noreturn)
      49  #else
      50  #define D_ATTRIBUTE_NORETURN
      51  #endif
      52  
      53  // Called after printing out fatal error messages.
      54  D_ATTRIBUTE_NORETURN void fatal();
      55  D_ATTRIBUTE_NORETURN void halt();