diff --git a/regression/cbmc/human-readable-error-on-wrong-main-signature/main.c b/regression/ansi-c/human-readable-error-on-wrong-main-signature/main.c similarity index 100% rename from regression/cbmc/human-readable-error-on-wrong-main-signature/main.c rename to regression/ansi-c/human-readable-error-on-wrong-main-signature/main.c diff --git a/regression/cbmc/human-readable-error-on-wrong-main-signature/test.desc b/regression/ansi-c/human-readable-error-on-wrong-main-signature/test.desc similarity index 94% rename from regression/cbmc/human-readable-error-on-wrong-main-signature/test.desc rename to regression/ansi-c/human-readable-error-on-wrong-main-signature/test.desc index 10f03822c62..1ac28bd9c2a 100644 --- a/regression/cbmc/human-readable-error-on-wrong-main-signature/test.desc +++ b/regression/ansi-c/human-readable-error-on-wrong-main-signature/test.desc @@ -2,7 +2,7 @@ CORE main.c 'main' with signature .* found -^EXIT=6$ +^EXIT=(1|64)$ ^SIGNAL=0$ -- Invariant check failed diff --git a/src/ansi-c/ansi_c_entry_point.cpp b/src/ansi-c/ansi_c_entry_point.cpp index 0f7b7e360c7..e9a1f578ac6 100644 --- a/src/ansi-c/ansi_c_entry_point.cpp +++ b/src/ansi-c/ansi_c_entry_point.cpp @@ -480,15 +480,19 @@ bool generate_ansi_c_start_function( { const namespacet ns{symbol_table}; const std::string main_signature = type2c(symbol.type, ns); - throw invalid_source_file_exceptiont{ - "'main' with signature '" + main_signature + - "' found," - " but expecting one of:\n" - " int main(void)\n" - " int main(int argc, char *argv[])\n" - " int main(int argc, char *argv[], char *envp[])\n" - "If this is a non-standard main entry point please provide a custom\n" - "entry function and point to it via cbmc --function instead"}; + messaget message(message_handler); + message.error().source_location = symbol.location; + message.error() << "'main' with signature '" << main_signature + << "' found," + << " but expecting one of:\n" + << " int main(void)\n" + << " int main(int argc, char *argv[])\n" + << " int main(int argc, char *argv[], char *envp[])\n" + << "If this is a non-standard main entry point please " + "provide a custom\n" + << "entry function and use --function instead" + << messaget::eom; + return true; } } else