GCC Middle and Back End API Reference
errors.cc File Reference
#include "bconfig.h"
#include "system.h"
#include "errors.h"
Include dependency graph for errors.cc:

Functions

void warning (const char *format,...)
void error (const char *format,...)
void fatal (const char *format,...)
void internal_error (const char *format,...)
const char * trim_filename (const char *name)
void fancy_abort (const char *file, int line, const char *func)

Variables

const char * progname
int have_error = 0

Function Documentation

◆ error()

void error ( const char * format,
... )
Print an error message - we keep going but the output is unusable.   

References ap, fputc(), have_error, progname, and vfprintf().

◆ fancy_abort()

void fancy_abort ( const char * file,
int line,
const char * func )
"Fancy" abort.  Reports where in the compiler someone gave up.
This file is used only by build programs, so we're not as polite as
the version in diagnostics/context.cc.   

References internal_error(), and trim_filename().

Referenced by _fatal_insn().

◆ fatal()

◆ internal_error()

void internal_error ( const char * format,
... )
Similar, but say we got an internal error.   

References ap, FATAL_EXIT_CODE, fputc(), progname, and vfprintf().

Referenced by fancy_abort().

◆ trim_filename()

const char * trim_filename ( const char * name)
Given a partial pathname as input, return another pathname that
shares no directory elements with the pathname of __FILE__.  This
is used by fancy_abort() to print `Internal compiler error in expr.cc'
instead of `Internal compiler error in ../../GCC/gcc/expr.cc'.  This
version is meant to be used for the gen* programs and therefor need not
handle subdirectories.   

◆ warning()

void warning ( const char * format,
... )
Print a warning message - output produced, but there may be problems.   

References ap, fputc(), progname, and vfprintf().

Variable Documentation

◆ have_error

◆ progname

const char* progname
Basic error reporting routines.
   Copyright (C) 1999-2025 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
warning, error, and fatal.  These definitions are suitable for use
in the generator programs; the compiler has a more elaborate suite
of diagnostic printers, found in diagnostic-global-context.cc using
the diagnostics/ subdirectory.   
Set this to argv[0] at the beginning of main.