diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 3159204bb9cdef14b061fb9e31e8992ed3bceba9..f2d585b84110eac05609fce902889a3b60873273 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -2824,7 +2824,10 @@ UnaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
         output << "cbrt";
       break;
     case UnaryOpcode::abs:
-      output << "abs";
+      if (isCOutput(output_type))
+        output << "fabs";
+      else
+        output << "abs";
       break;
     case UnaryOpcode::sign:
       if (output_type == ExprNodeOutputType::CDynamicModel || output_type == ExprNodeOutputType::CStaticModel)