Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- ASTImportError.h - Define errors while importing AST -----*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. //  This file defines the ASTImportError class which basically defines the kind
  10. //  of error while importing AST .
  11. //
  12. //===----------------------------------------------------------------------===//
  13.  
  14. #ifndef LLVM_CLANG_AST_ASTIMPORTERROR_H
  15. #define LLVM_CLANG_AST_ASTIMPORTERROR_H
  16.  
  17. #include "llvm/Support/Error.h"
  18.  
  19. namespace clang {
  20.  
  21. class ASTImportError : public llvm::ErrorInfo<ASTImportError> {
  22. public:
  23.   /// \brief Kind of error when importing an AST component.
  24.   enum ErrorKind {
  25.     NameConflict,         /// Naming ambiguity (likely ODR violation).
  26.     UnsupportedConstruct, /// Not supported node or case.
  27.     Unknown               /// Other error.
  28.   };
  29.  
  30.   ErrorKind Error;
  31.  
  32.   static char ID;
  33.  
  34.   ASTImportError() : Error(Unknown) {}
  35.   ASTImportError(const ASTImportError &Other) : Error(Other.Error) {}
  36.   ASTImportError &operator=(const ASTImportError &Other) {
  37.     Error = Other.Error;
  38.     return *this;
  39.   }
  40.   ASTImportError(ErrorKind Error) : Error(Error) {}
  41.  
  42.   std::string toString() const;
  43.  
  44.   void log(llvm::raw_ostream &OS) const override;
  45.   std::error_code convertToErrorCode() const override;
  46. };
  47.  
  48. } // namespace clang
  49.  
  50. #endif // LLVM_CLANG_AST_ASTIMPORTERROR_H
  51.