def nvrtcGetLoweredName(self, prog, name_expression):
        """
        Notes the given name expression denoting a __global__ function or
        function template instantiation.
        """
        lowered_name = c_char_p()
        code = self._lib.nvrtcGetLoweredName(prog,
                                             c_char_p(encode_str(name_expression)),
                                             byref(lowered_name))
        self._throw_on_error(code)
        return lowered_name.value.decode('utf-8')