I just found this today - Clang seems to get confused when a block has @try{} 
@catch(...){} (Objective-C) statement in a block which has a return value 
declared, but no return statement actually appears in that block. Example:

int main(int argc, const char * argv[])
{
    id (^iReturnStuff)() = ^id() {
        @try{} @finally{}
    };
    return 0;
}

This shouldn't compile. But it does. Whenever you remove the @try statement, 
Clang throws an error as it should. Gcc correctly doesn't compile this.

What is it about @try{} that gets it confused?

-- 
Honza Dvorsky
@czechboy0
honzadvorsky.com
_______________________________________________
cfe-users mailing list
cfe-users@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

Reply via email to