add a couple of key functions for classes without them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103688 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-05-13 01:02:19 +00:00
Родитель 0f91f6a2ea
Коммит bef0efd11b
4 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -51,6 +51,7 @@ typedef UsuallyTinyPtrVector<const CXXBaseSpecifier> CXXBaseSpecifierArray;
class Expr : public Stmt {
QualType TR;
virtual void ANCHOR(); // key function.
protected:
/// TypeDependent - Whether this expression is type-dependent
/// (C++ [temp.dep.expr]).

Просмотреть файл

@ -1733,6 +1733,8 @@ public:
/// class of FunctionNoProtoType and FunctionProtoType.
///
class FunctionType : public Type {
virtual void ANCHOR(); // Key function for FunctionType.
/// SubClassData - This field is owned by the subclass, put here to pack
/// tightly with the ivars in Type.
bool SubClassData : 1;

Просмотреть файл

@ -27,6 +27,8 @@
#include <algorithm>
using namespace clang;
void Expr::ANCHOR() {} // key function for Expr class.
/// isKnownToHaveBooleanValue - Return true if this is an integer expression
/// that is known to return 0 or 1. This happens for _Bool/bool expressions
/// but also int expressions which are produced by things like comparisons in

Просмотреть файл

@ -906,10 +906,12 @@ const char *BuiltinType::getName(const LangOptions &LO) const {
case UndeducedAuto: return "auto";
case ObjCId: return "id";
case ObjCClass: return "Class";
case ObjCSel: return "SEL";
case ObjCSel: return "SEL";
}
}
void FunctionType::ANCHOR() {} // Key function for FunctionType.
llvm::StringRef FunctionType::getNameForCallConv(CallingConv CC) {
switch (CC) {
case CC_Default: llvm_unreachable("no name for default cc");