/// - *e, the type of e cannot be a function type
/// - string-constant
///
-Expr::isLvalueResult Expr::isLvalue() {
+Expr::isLvalueResult Expr::isLvalue() const {
// first, check the type (C99 6.3.2.1)
if (isa<FunctionType>(TR.getCanonicalType())) // from isObjectType()
return LV_NotObjectType;
/// if it is a structure or union, does not have any member (including,
/// recursively, any member or element of all contained aggregates or unions)
/// with a const-qualified type.
-Expr::isModifiableLvalueResult Expr::isModifiableLvalue() {
+Expr::isModifiableLvalueResult Expr::isModifiableLvalue() const {
isLvalueResult lvalResult = isLvalue();
switch (lvalResult) {
LV_IncompleteVoidType,
LV_InvalidExpression
};
- isLvalueResult isLvalue();
+ isLvalueResult isLvalue() const;
/// isModifiableLvalue - C99 6.3.2.1: an lvalue that does not have array type,
/// does not have an incomplete type, does not have a const-qualified type,
MLV_ConstQualified,
MLV_ArrayType
};
- isModifiableLvalueResult isModifiableLvalue();
+ isModifiableLvalueResult isModifiableLvalue() const;
bool isNullPointerConstant(ASTContext &Ctx) const;