Remove cpp hack to avoid link failures on Windows

TBR=yangguo@chromium.org
BUG=

Review URL: https://codereview.chromium.org/298133005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
rossberg@chromium.org 2014-05-27 14:26:32 +00:00
parent c92d6f57ee
commit 68a1a59556
2 changed files with 30 additions and 13 deletions

View File

@ -469,7 +469,7 @@ class TypeImpl : public Config::Base {
template<class Config>
class TypeImpl<Config>::BitsetType : public TypeImpl<Config> {
private:
protected:
friend class TypeImpl<Config>;
enum {

View File

@ -27,13 +27,8 @@
#include <vector>
#define private public /* To test private methods :) */
#define protected public
#include "types.h"
#undef private
#undef protected
#include "cctest.h"
#include "types.h"
#include "utils/random-number-generator.h"
using namespace v8::internal;
@ -76,6 +71,13 @@ struct ZoneRep {
}
static Zone* ToRegion(Zone* zone, Isolate* isolate) { return zone; }
struct BitsetType : Type::BitsetType {
using Type::BitsetType::New;
using Type::BitsetType::Glb;
using Type::BitsetType::Lub;
using Type::BitsetType::InherentLub;
};
};
@ -108,6 +110,16 @@ struct HeapRep {
static int Length(Struct* structured) { return structured->length() - 1; }
static Isolate* ToRegion(Zone* zone, Isolate* isolate) { return isolate; }
struct BitsetType : HeapType::BitsetType {
using HeapType::BitsetType::New;
using HeapType::BitsetType::Glb;
using HeapType::BitsetType::Lub;
using HeapType::BitsetType::InherentLub;
static int Glb(Handle<HeapType> type) { return Glb(*type); }
static int Lub(Handle<HeapType> type) { return Lub(*type); }
static int InherentLub(Handle<HeapType> type) { return InherentLub(*type); }
};
};
@ -739,31 +751,36 @@ struct Tests : Rep {
// Ordering: (T->BitsetGlb())->Is(T->BitsetLub())
for (TypeIterator it = T.types.begin(); it != T.types.end(); ++it) {
TypeHandle type = *it;
TypeHandle glb = Type::BitsetType::New(type->BitsetGlb(), T.region());
TypeHandle lub = Type::BitsetType::New(type->BitsetLub(), T.region());
TypeHandle glb =
Rep::BitsetType::New(Rep::BitsetType::Glb(type), T.region());
TypeHandle lub =
Rep::BitsetType::New(Rep::BitsetType::Lub(type), T.region());
CHECK(glb->Is(lub));
}
// Lower bound: (T->BitsetGlb())->Is(T)
for (TypeIterator it = T.types.begin(); it != T.types.end(); ++it) {
TypeHandle type = *it;
TypeHandle glb = Type::BitsetType::New(type->BitsetGlb(), T.region());
TypeHandle glb =
Rep::BitsetType::New(Rep::BitsetType::Glb(type), T.region());
CHECK(glb->Is(type));
}
// Upper bound: T->Is(T->BitsetLub())
for (TypeIterator it = T.types.begin(); it != T.types.end(); ++it) {
TypeHandle type = *it;
TypeHandle lub = Type::BitsetType::New(type->BitsetLub(), T.region());
TypeHandle lub =
Rep::BitsetType::New(Rep::BitsetType::Lub(type), T.region());
CHECK(type->Is(lub));
}
// Inherent bound: (T->BitsetLub())->Is(T->InherentBitsetLub())
for (TypeIterator it = T.types.begin(); it != T.types.end(); ++it) {
TypeHandle type = *it;
TypeHandle lub = Type::BitsetType::New(type->BitsetLub(), T.region());
TypeHandle lub =
Rep::BitsetType::New(Rep::BitsetType::Lub(type), T.region());
TypeHandle inherent =
Type::BitsetType::New(type->InherentBitsetLub(), T.region());
Rep::BitsetType::New(Rep::BitsetType::InherentLub(type), T.region());
CHECK(lub->Is(inherent));
}
}