From e2bc1cb711ac819e52fe171a0fc34a13a1deb6ce Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Sun, 15 Jun 2008 12:07:01 +0000 Subject: [PATCH] Make sure that the current executable filename has "exe" suffix on Windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52286 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-stub/llvm-stub.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/llvm-stub/llvm-stub.c b/tools/llvm-stub/llvm-stub.c index 7e123cf6074..91537a0b9cc 100644 --- a/tools/llvm-stub/llvm-stub.c +++ b/tools/llvm-stub/llvm-stub.c @@ -38,6 +38,7 @@ int main(int argc, char** argv) { const char *Interp = getenv("LLVMINTERP"); const char **Args; + int len; if (Interp == 0) Interp = "lli"; /* Set up the command line options to pass to the JIT. */ @@ -45,11 +46,14 @@ int main(int argc, char** argv) { /* argv[0] is the JIT */ Args[0] = Interp; -#ifdef __CYGWIN32__ - /* Cygwin strips the .exe suffix off of argv[0] to "help" us. Put it back - * on. - */ - argv[0] = strcat(strcpy((char*)malloc(strlen(argv[0])+5), argv[0]), ".exe"); +#ifdef LLVM_ON_WIN32 + len = strlen(argv[0]); + if (len < 4 || strcmp(argv[0] + len - 4, ".exe") != 0) { + /* .exe suffix is stripped off of argv[0] if the executable was run on the + * command line without one. Put it back on. + */ + argv[0] = strcat(strcpy((char*)malloc(len + 5), argv[0]), ".exe"); + } #endif /* argv[1] is argv[0] + ".bc". */