code: def test_output_arg_c_reserved_words():
      from sympy.core.relational import Equality
      from sympy.functions.elementary.trigonometric import cos, sin
  
      x, y, z = symbols("if, while, z")
      r = make_routine("foo", [Equality(y, sin(x)), cos(x)])
      c = C89CodeGen()
      result = c.write([r], "test", header=False, empty=False)
      assert result[0][0] == "test.c"
      expected = (
          '#include "test.h"\n'
          "#include <math.h>\n"
          "double foo(double if_, double *while_) {\n"
          "   (*while_) = sin(if_);\n"
          "   double foo_result;\n"
          "   foo_result = cos(if_);\n"
          "   return foo_result;\n"
          "}\n"
      )
      assert result[0][1] == expected
  
imports: from io import StringIO
  from sympy.core import symbols, Eq, pi, Catalan, Lambda, Dummy
  from sympy.core.relational import Equality
  from sympy.core.symbol import Symbol
  from sympy.functions.special.error_functions import erf
  from sympy.integrals.integrals import Integral
  from sympy.matrices import Matrix, MatrixSymbol
  from sympy.utilities.codegen import codegen, make_routine, CCodeGen, C89CodeGen, C99CodeGen, InputArgument, CodeGenError, FCodeGen, CodeGenArgumentListError, OutputArgument, InOutArgument
  from sympy.testing.pytest import raises
  from sympy.utilities.lambdify import implemented_function
label_desc: Use image node_id 21 for calling a global function with example usage: test_output_arg_c_reserved_words() without return types