Typical message

 "hello.c", line 18: remark #994-D: missing return statement at end of non-void function "main"

What it means

The compiler believes that the function should return a value, but it does not. If the function really is meant to return a value, attempting to use the return value of this function will result in undefined behavior, in which case the program is not a legal C program.

Why it is happening

This usually happens for one of two reasons:

Remedy

Risks, Severity

If the return value of the function is never used (or if the function never returns), it is harmless. If the return value is ever used, there is positively a bug in the user's function.