diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h
index 0d498fe..ae80a24 100644
--- a/include/clang/AST/DeclCXX.h
+++ b/include/clang/AST/DeclCXX.h
@@ -1559,6 +1559,18 @@ public:
     return (CD->begin_overridden_methods() != CD->end_overridden_methods());
   }
 
+  /// \brief Determine if this method is marked const.
+  bool isConst() const {
+    assert(isInstance() && "isConst() called on static method");
+    return Qualifiers::fromCVRMask(getTypeQualifiers()).hasConst();
+  }
+
+  /// \brief Determine if this method is marked volatile.
+  bool isVolatile() const {
+    assert(isInstance() && "isVolatile() called on static method");
+    return Qualifiers::fromCVRMask(getTypeQualifiers()).hasVolatile();
+  }
+
   /// \brief Determine whether this is a usual deallocation function
   /// (C++ [basic.stc.dynamic.deallocation]p2), which is an overloaded
   /// delete or delete[] operator with a particular signature.
