I had a file in my folder called HardwareSerial_cdcacm copy.c.working
Note that the file name does NOT end in .c or .cpp or .s
I ALSO had a file called HardwareSerial_cdcacm.c
MPIDE compiled BOTH files and used the first one. This caused several hours of barking up the wrong tree. The first file should have never been compiled at all.