mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
Add test for pointer qualification conversion.
llvm-svn: 149541
This commit is contained in:
86
libcxxabi/test/catch_ptr_02.cpp
Normal file
86
libcxxabi/test/catch_ptr_02.cpp
Normal file
@@ -0,0 +1,86 @@
|
||||
//===------------------------- catch_ptr_02.cpp ---------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include <cassert>
|
||||
|
||||
struct A {};
|
||||
A a;
|
||||
const A ca = A();
|
||||
|
||||
void test1 ()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw &a;
|
||||
assert(false);
|
||||
}
|
||||
catch ( const A* )
|
||||
{
|
||||
}
|
||||
catch ( A *)
|
||||
{
|
||||
assert (false);
|
||||
}
|
||||
}
|
||||
|
||||
void test2 ()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw &a;
|
||||
assert(false);
|
||||
}
|
||||
catch ( A* )
|
||||
{
|
||||
}
|
||||
catch ( const A *)
|
||||
{
|
||||
assert (false);
|
||||
}
|
||||
}
|
||||
|
||||
void test3 ()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw &ca;
|
||||
assert(false);
|
||||
}
|
||||
catch ( const A* )
|
||||
{
|
||||
}
|
||||
catch ( A *)
|
||||
{
|
||||
assert (false);
|
||||
}
|
||||
}
|
||||
|
||||
void test4 ()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw &ca;
|
||||
assert(false);
|
||||
}
|
||||
catch ( A *)
|
||||
{
|
||||
assert (false);
|
||||
}
|
||||
catch ( const A* )
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test1();
|
||||
test2();
|
||||
test3();
|
||||
test4();
|
||||
}
|
||||
Reference in New Issue
Block a user