diff --git a/src/shared/cplusplus/CheckDeclarator.cpp b/src/shared/cplusplus/CheckDeclarator.cpp
index dfb045b3a0684d2bc37f11229834cf27bf645bb1..84edbd0292451864c081c22addf8284289d1cab6 100644
--- a/src/shared/cplusplus/CheckDeclarator.cpp
+++ b/src/shared/cplusplus/CheckDeclarator.cpp
@@ -197,6 +197,9 @@ bool CheckDeclarator::visit(FunctionDeclaratorAST *ast)
     FullySpecifiedType funTy(fun);
     funTy = semantic()->check(ast->cv_qualifier_list, _scope, funTy);
 
+    fun->setConst(funTy.isConst());
+    fun->setVolatile(funTy.isVolatile());
+
     _fullySpecifiedType = funTy;
     return false;
 }