
Using a _BitInt (or _ExtInt) type as a block parameter or block return type hits an "unreachable" when trying to determine the encoding for the block. Instead of crashing, this patch handles it like some of the other types for which we don't yet have an encoding. The test case verifies we no longer crash, but does not verify that we provide any particular encoding (it can be updated once someone more familiar with ObjC steps in to define the encoding). Fixes PR50503.
22 lines
568 B
Objective-C
22 lines
568 B
Objective-C
// RUN: %clang_cc1 -triple i686-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -fblocks -emit-llvm -o /dev/null %s
|
|
|
|
// Using a _BitInt as a block parameter or return type previously would crash
|
|
// when getting the ObjC encoding for the type. Verify that we no longer crash,
|
|
// but do not verify any particular encoding (one has not yet been determined).
|
|
void foo1(void)
|
|
{
|
|
__auto_type blk = ^int(unsigned _BitInt(64) len)
|
|
{
|
|
return 12;
|
|
};
|
|
}
|
|
|
|
void foo2(void)
|
|
{
|
|
__auto_type blk = ^unsigned _BitInt(64)(int len)
|
|
{
|
|
return 12;
|
|
};
|
|
}
|
|
|