Sometimes when you compile an application, that has previously worked correctly and you haven't changed anything it, can start failing after updating your compiler or operating system.
Every compiler version is tested on specific setup against same set of applications... This means compiler that works for a lot of applications still has a bug that makes small set of applications crash.
Common errors that mean the compiler might be faulty
- When compiling: "... exceeds maximum object size 9223372036854775807"
Convert the preceding number to hexadecimal. You can do that easily using just Google Search, for example type "18446744073709551608 in hexadecimal" as the search string, this will return 0xFFFFFFFFFFFFFFF8. Beware that some calculator applications can't convert very large numbers. Usually the number starts with a lot of F's... This means the number is actually negative and the compiler has tried to subtract actual object or variable size from 0. In normal cases this means the optimizer has failed to detect that your code has check that the object is not empty.
- When running: "free(): invalid size"
This means the program attempted to allocate and free object with negative size. Possible reason is same as the case above, compiler optimized away check that the object is not empty and tried to manipulate it.