http://llvm.org/bugs/show_bug.cgi?id=10411

           Summary: assertion when using exception and ARC
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


Clang (trunk 135497) failed to compile code that throw exception when ARC is
enabled.
It reaches an assertion in ActOnFinishFunctionBody().

For instance the following code failed to compile:

------- test.m
@interface NSException
+ (id)exception;
@end

void test() { @throw [NSException exception]; }

------------
% clang -fobjc-arc -c test.m
Assertion failed: (!ExprNeedsCleanups && "Unaccounted cleanups in function"),
function ActOnFinishFunctionBody, file SemaDecl.cpp, line 6536.
0  clang             0x000000010ec97842 _ZL15PrintStackTracePv + 34
…
5  clang             0x000000010ec97a45 __assert_rtn + 53
6  clang             0x000000010df12d23
clang::Sema::ActOnFinishFunctionBody(clang::Decl*, clang::Stmt*, bool) + 1347
7  clang             0x000000010de570c4
clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 244
8  clang             0x000000010de6212d
clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&) + 1885
9  clang             0x000000010de267ab
clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int,
bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 907
…
18 clang             0x000000010dbff68a cc1_main(char const**, char const**,
char const*, void*) + 5450
19 clang             0x000000010dc033d2 main + 706
20 clang             0x000000010dbfe134 start + 52
21 clang             0x000000000000002b start + 18446744069183905579
Stack dump:
0.    Program arguments:
/Users/jddupas/Projects/OpenSource/llvm/release/Release+Asserts/bin/clang -cc1
-triple x86_64-apple-macosx10.7.0 -emit-obj -mrelax-all -disable-free
-main-file-name test.m -pic-level 1 -mdisable-fp-elim -masm-verbose
-munwind-tables -target-cpu core2 -target-linker-version 123.2.1 -coverage-file
test.o -resource-dir
/Users/jddupas/Projects/OpenSource/llvm/release/Release+Asserts/bin/../lib/clang/3.0
-ferror-limit 19 -fmessage-length 170 -stack-protector 1 -fblocks
-fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-nonfragile-abi
-fobjc-dispatch-method=mixed -fobjc-arc -fobjc-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o test.o -x objective-c test.m 
1.    <eof> parser at end of file
2.    test.m:5:13: parsing function body 'test'
clang: error: unable to execute command: Illegal instruction: 4
clang: error: clang frontend command failed due to signal 2 (use -v to see
invocation)

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to