Casting.cpp revision af8e2ef649b90e88f9d595a638279e3bc4892845
1ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif//===---------- llvm/unittest/Support/Casting.cpp - Casting tests --------===// 2ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif// 3ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif// The LLVM Compiler Infrastructure 4ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif// 5ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif// This file is distributed under the University of Illinois Open Source 6ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif// License. See LICENSE.TXT for details. 7ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif// 8ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif//===----------------------------------------------------------------------===// 9ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 10ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif#include "llvm/Support/raw_ostream.h" 11ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif#include "llvm/Support/Debug.h" 12ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif#define DEBUG_CAST_OPERATORS 13ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif#include "llvm/Support/Casting.h" 14ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 15ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif#include "gtest/gtest.h" 16ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif#include <cstdlib> 17ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 18ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifusing namespace llvm; 19ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 20ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifnamespace { 21ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 22ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifextern bar &B1; 23ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifextern const bar *B2; 24ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 25af8e2ef649b90e88f9d595a638279e3bc4892845Gabor GreifTEST(CastingTest, isa) { 26af8e2ef649b90e88f9d595a638279e3bc4892845Gabor Greif // test various configurations of const 27af8e2ef649b90e88f9d595a638279e3bc4892845Gabor Greif const bar &B3 = B1; 28af8e2ef649b90e88f9d595a638279e3bc4892845Gabor Greif const bar *const B4 = B2; 29ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif EXPECT_TRUE(isa<foo>(B1)); 30af8e2ef649b90e88f9d595a638279e3bc4892845Gabor Greif EXPECT_TRUE(isa<foo>(B2)); 31af8e2ef649b90e88f9d595a638279e3bc4892845Gabor Greif EXPECT_TRUE(isa<foo>(B3)); 32af8e2ef649b90e88f9d595a638279e3bc4892845Gabor Greif EXPECT_TRUE(isa<foo>(B4)); 33ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif} 34ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif 35ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifbar B; 36ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifbar &B1 = B; 37ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greifconst bar *B2 = &B; 38ee57dae3d8bcb2f3f41eb225bc615045d13d9ddaGabor Greif} // anonymous namespace 39