I wrote this arbitrary precision arithmetic utility on BSD in my postgraduate days, then after graduating ported it to DOS using TurboC. Was proud that it would do the same thing with 16bit word limits as it had done with 32. Later got a staff account for a university CMS IBM mainframe and started to port it there but had all sorts of compiler/runtime failures until a seasoned IBMer advised I change my function call symbols. "The function call names are clashing with your VM name space" I was told, so rename them or prefix them with an underscore or something else. The VM "D:" drive, its "filenames", and the "executive text" files all lived in the same flat namespace.
That was the end of portability to CMS, sadly, after I had carefully handled all the ASCII / EBCDIC mappings for the interpreter's scanner.
Is CMS still alive and well, and is it still illegal to have a "C" function name identical to a file name?