зеркало из https://github.com/microsoft/clang-1.git
Don't assert on attempts to throw 'bool'. I wonder if in the history of C++
anyone has ever intentionally done this outside of a compiler test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117645 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
87a4ed905e
Коммит
14e1bc9201
|
@ -526,7 +526,7 @@ static void EmitAnyExprToExn(CodeGenFunction &CGF, const Expr *E,
|
|||
|
||||
// __cxa_allocate_exception returns a void*; we need to cast this
|
||||
// to the appropriate type for the object.
|
||||
const llvm::Type *Ty = CGF.ConvertType(E->getType())->getPointerTo();
|
||||
const llvm::Type *Ty = CGF.ConvertTypeForMem(E->getType())->getPointerTo();
|
||||
llvm::Value *TypedExnLoc = CGF.Builder.CreateBitCast(ExnLoc, Ty);
|
||||
|
||||
// FIXME: this isn't quite right! If there's a final unelided call
|
||||
|
|
|
@ -8,3 +8,8 @@ int& test1() {
|
|||
int test2() {
|
||||
return val ? throw val : val;
|
||||
}
|
||||
|
||||
// rdar://problem/8608801
|
||||
void test3() {
|
||||
throw false;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче