From 62e2066792a8a166d4f52124467b8d1c65838edc Mon Sep 17 00:00:00 2001 From: John McCall Date: Mon, 18 Jan 2010 23:21:37 +0000 Subject: [PATCH] Move AccessSpecifier into the new Specifiers.h; fixes the layering violations inherent in, well, pretty much every use of AccessSpecifier. llvm-svn: 93804 --- clang/include/clang/AST/DeclBase.h | 3 +-- clang/include/clang/Basic/Specifiers.h | 9 +++++++ clang/include/clang/Parse/AccessSpecifier.h | 30 --------------------- clang/include/clang/Parse/Action.h | 2 +- clang/include/clang/Parse/Parser.h | 2 +- 5 files changed, 12 insertions(+), 34 deletions(-) delete mode 100644 clang/include/clang/Parse/AccessSpecifier.h diff --git a/clang/include/clang/AST/DeclBase.h b/clang/include/clang/AST/DeclBase.h index 0902b450a4ac..775bce2a15fc 100644 --- a/clang/include/clang/AST/DeclBase.h +++ b/clang/include/clang/AST/DeclBase.h @@ -16,8 +16,7 @@ #include "clang/AST/Attr.h" #include "clang/AST/Type.h" -// FIXME: Layering violation -#include "clang/Parse/AccessSpecifier.h" +#include "clang/Basic/Specifiers.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/ADT/PointerUnion.h" diff --git a/clang/include/clang/Basic/Specifiers.h b/clang/include/clang/Basic/Specifiers.h index 5f00a46d8b94..88e439659372 100644 --- a/clang/include/clang/Basic/Specifiers.h +++ b/clang/include/clang/Basic/Specifiers.h @@ -67,6 +67,15 @@ namespace clang { /*DeclSpec::TSW*/ unsigned Width : 2; bool ModeAttr : 1; }; + + /// AccessSpecifier - A C++ access specifier (none, public, private, + /// protected). + enum AccessSpecifier { + AS_none, + AS_public, + AS_protected, + AS_private + }; } #endif // LLVM_CLANG_BASIC_SPECIFIERS_H diff --git a/clang/include/clang/Parse/AccessSpecifier.h b/clang/include/clang/Parse/AccessSpecifier.h deleted file mode 100644 index 8d2cee8ea43a..000000000000 --- a/clang/include/clang/Parse/AccessSpecifier.h +++ /dev/null @@ -1,30 +0,0 @@ -//===--- AccessSpecifier.h - C++ Access Specifiers -*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file defines interfaces used for C++ access specifiers. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_PARSE_ACCESS_SPECIFIER_H -#define LLVM_CLANG_PARSE_ACCESS_SPECIFIER_H - -namespace clang { - -/// AccessSpecifier - A C++ access specifier (none, public, private, -/// protected). -enum AccessSpecifier { - AS_none, - AS_public, - AS_protected, - AS_private -}; - -} // end namespace clang - -#endif diff --git a/clang/include/clang/Parse/Action.h b/clang/include/clang/Parse/Action.h index 4b9ff7be0d80..ff33f5039d5d 100644 --- a/clang/include/clang/Parse/Action.h +++ b/clang/include/clang/Parse/Action.h @@ -16,9 +16,9 @@ #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/SourceLocation.h" +#include "clang/Basic/Specifiers.h" #include "clang/Basic/TemplateKinds.h" #include "clang/Basic/TypeTraits.h" -#include "clang/Parse/AccessSpecifier.h" #include "clang/Parse/DeclSpec.h" #include "clang/Parse/Ownership.h" #include "llvm/Support/PrettyStackTrace.h" diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h index 0fc9413c30c3..e7cb0a2493d3 100644 --- a/clang/include/clang/Parse/Parser.h +++ b/clang/include/clang/Parse/Parser.h @@ -14,8 +14,8 @@ #ifndef LLVM_CLANG_PARSE_PARSER_H #define LLVM_CLANG_PARSE_PARSER_H +#include "clang/Basic/Specifiers.h" #include "clang/Lex/Preprocessor.h" -#include "clang/Parse/AccessSpecifier.h" #include "clang/Parse/Action.h" #include "clang/Parse/DeclSpec.h" #include "llvm/ADT/OwningPtr.h"