From 24a26d86836a5d38f96ec3d2e836ce5ae59c08c8 Mon Sep 17 00:00:00 2001 From: Patrick Lipka Date: Mon, 18 Aug 2025 17:32:24 +0200 Subject: [PATCH] add main function detection --- src/rvprof_utils.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/rvprof_utils.c b/src/rvprof_utils.c index 563ddbc..225d201 100644 --- a/src/rvprof_utils.c +++ b/src/rvprof_utils.c @@ -67,3 +67,22 @@ char* rvprof_utils_generate_output_filename(void){ return "rvprof_output.log"; } +// main function detection +int rvprof_utils_is_main_function(const char* func_name) { + if (!func_name) return 0; + + // C main function + if (strcmp(func_name, "main") == 0) return 1; + + // variety of possible names for Fortran + if (strstr(func_name, "MAIN__") != NULL) return 1; + if (strstr(func_name, "main_program") != NULL) return 1; + if (strstr(func_name, "_main_program") != NULL) return 1; + if (strstr(func_name, "_QQmain") != NULL) return 1; + if (strncmp(func_name, "MAIN_", 5) == 0) return 1; + if (strncmp(func_name, "_MAIN_", 6) == 0) return 1; + if (strstr(func_name, "__main_program_MOD_") != NULL) return 1; + if (strcmp(func_name, "_gfortran_main") == 0) return 1; + + return 0; +}