X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gold%2Ferrors.h;h=5602a76d85c54ce11a86c59bba6c942e0ead3297;hb=b50ef514ff0c8d5506227c412c508f9f538bcf5a;hp=efc0d1ebe9f1bd9c45ed488e4af39803e95c0d79;hpb=2dd3e587bdab39d73086c35be60399e096d48b46;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/errors.h b/gold/errors.h index efc0d1ebe9..5602a76d85 100644 --- a/gold/errors.h +++ b/gold/errors.h @@ -1,6 +1,6 @@ // errors.h -- handle errors for gold -*- C++ -*- -// Copyright 2006, 2007 Free Software Foundation, Inc. +// Copyright (C) 2006-2020 Free Software Foundation, Inc. // Written by Ian Lance Taylor . // This file is part of gold. @@ -24,6 +24,7 @@ #define GOLD_ERRORS_H #include +#include #include "gold-threads.h" @@ -49,6 +50,12 @@ class Errors void fatal(const char* format, va_list) ATTRIBUTE_NORETURN; + // Report a fallback error. After printing the error, this must exit + // with a special status code indicating that fallback to + // --incremental-full is required. + void + fallback(const char* format, va_list) ATTRIBUTE_NORETURN; + // Report an error and continue. void error(const char* format, va_list); @@ -57,6 +64,10 @@ class Errors void warning(const char* format, va_list); + // Print an informational message and continue. + void + info(const char* format, va_list); + // Report an error at a reloc location. template void @@ -71,14 +82,10 @@ class Errors size_t relnum, off_t reloffset, const char* format, va_list); - // Issue an undefined symbol error. SYM is the undefined symbol. - // RELINFO is the general relocation info. RELNUM is the number of - // the reloc, and RELOFFSET is the reloc's offset. - template + // Issue an undefined symbol error. LOCATION is the location of + // the error (typically an object file name or relocation info). void - undefined_symbol(const Symbol* sym, - const Relocate_info* relinfo, - size_t relnum, off_t reloffset); + undefined_symbol(const Symbol* sym, const std::string& location); // Report a debugging message. void @@ -89,6 +96,11 @@ class Errors error_count() const { return this->error_count_; } + // Return the number of warnings. + int + warning_count() const + { return this->warning_count_; } + private: Errors(const Errors&); Errors& operator=(const Errors&); @@ -111,6 +123,8 @@ class Errors // This class can be accessed from multiple threads. This lock is // used to control access to the data structures. Lock* lock_; + // Used to initialize the lock_ field exactly once. + Initialize_lock initialize_lock_; // Numbers of errors reported. int error_count_; // Number of warnings reported.