[PATCH] Have HasSideEffects() return false for __attribute__((const)) functions

hfinkel at anl.gov hfinkel at anl.gov
Mon Mar 23 09:19:46 PDT 2015


================
Comment at: lib/AST/Expr.cpp:2953
@@ +2952,3 @@
+    const Decl *FD = cast<CallExpr>(this)->getCalleeDecl();
+    bool IsConst = FD && FD->hasAttr<ConstAttr>();
+    if (IsConst || !IncludePossibleEffects)
----------------
You're checking for ConstAttr here, which is fine, but I think that we can do more:

This is allowed:
  static int i;
  void foo() {
    __builtin_assume(i > 0);
  }

and so we can also check for PureAttr. And what about constexpr functions?

http://reviews.llvm.org/D8548

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the cfe-commits mailing list