Assume statement expressions have side effects; this gets rid of a lot

of extra warnings in the Python source.

llvm-svn: 51594
This commit is contained in:
Eli Friedman 2008-05-27 15:24:04 +00:00
parent ca5bdef66a
commit 824f8c12fd
1 changed files with 5 additions and 2 deletions

View File

@ -319,14 +319,17 @@ bool Expr::hasLocalSideEffect() const {
// If the base pointer or element is to a volatile pointer/field, accessing
// if is a side effect.
return getType().isVolatileQualified();
case CallExprClass:
// TODO: check attributes for pure/const. "void foo() { strlen("bar"); }"
// should warn.
return true;
case ObjCMessageExprClass:
return true;
case StmtExprClass:
// TODO: check the inside of the statement expression
return true;
case CastExprClass:
// If this is a cast to void, check the operand. Otherwise, the result of
// the cast is unused.