Author: mrs
Date: Thu Dec 10 16:57:48 2009
New Revision: 91073
URL: http://llvm.org/viewvc/llvm-project?rev=91073&view=rev
Log:
Don't complain about falling off the end of a function with an asm
block, if the function is supposed to return a value as we don't know
exactly what the asm code does.
Modified:
cfe/trunk/lib/Sema/SemaDecl.cpp
cfe/trunk/test/Sema/return.c
Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=91073&r1=91072&r2=91073&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Thu Dec 10 16:57:48 2009
@@ -1253,6 +1253,11 @@
HasFakeEdge = true;
continue;
}
+ if (isa<AsmStmt>(S)) {
+ HasFakeEdge = true;
+ HasLiveReturn = true;
+ continue;
+ }
bool NoReturnEdge = false;
if (CallExpr *C = dyn_cast<CallExpr>(S)) {
Expr *CEE = C->getCallee()->IgnoreParenCasts();
Modified: cfe/trunk/test/Sema/return.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/return.c?rev=91073&r1=91072&r2=91073&view=diff
==============================================================================
--- cfe/trunk/test/Sema/return.c (original)
+++ cfe/trunk/test/Sema/return.c Thu Dec 10 16:57:48 2009
@@ -222,3 +222,7 @@
void test33() {
if (j) while (1) { }
}
+
+int test34() {
+ asm("nop");
+}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits