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

of extra warnings in the Python source.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51594 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eli Friedman 2008-05-27 15:24:04 +00:00
Родитель a1d642db81
Коммит 211f6adf13
1 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

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