Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
Warnings most often mean "here is a bug which will likely cause your program to crash or misbehave". They do not mean "here's something that you can optionally fix when you can spare the time". See...
Answer
#2: Post edited
- Warnings most often mean "here is a bug which will likely cause your program to crash or misbehave". They do _not_ mean "here's something that you can optionally fix when you can spare the time". See [What must a C compiler do when it finds an error?](https://software.codidact.com/posts/277340)
In your specific case, ignoring the warning leads to undefined behavior, meaning anything can happen. For example runaway code, crashes caused by stack corruption/wrong calling convention, wrong results calculated on garbage values, code getting incorrectly optimized and parts of it removed etc etc. [What is undefined behavior and how does it work?](https://software.codidact.com/posts/277486)
- Warnings most often mean "here is a bug which will likely cause your program to crash or misbehave". They do _not_ mean "here's something that you can optionally fix when you can spare the time". See [What must a C compiler do when it finds an error?](https://software.codidact.com/posts/277340)
- In your specific case, ignoring the warning leads to undefined behavior, meaning anything can happen. This is mentioned in the C standard C17 6.9.1/12:
- > If the } that terminates a function is reached, and the value of the function call is used by the caller, the behavior is undefined.
- For example runaway code, crashes caused by stack corruption/wrong calling convention, wrong results calculated on garbage values, code getting incorrectly optimized and parts of it removed etc etc. [What is undefined behavior and how does it work?](https://software.codidact.com/posts/277486)
#1: Initial revision
Warnings most often mean "here is a bug which will likely cause your program to crash or misbehave". They do _not_ mean "here's something that you can optionally fix when you can spare the time". See [What must a C compiler do when it finds an error?](https://software.codidact.com/posts/277340) In your specific case, ignoring the warning leads to undefined behavior, meaning anything can happen. For example runaway code, crashes caused by stack corruption/wrong calling convention, wrong results calculated on garbage values, code getting incorrectly optimized and parts of it removed etc etc. [What is undefined behavior and how does it work?](https://software.codidact.com/posts/277486)