diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-06-15 12:07:01 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-06-15 12:07:01 +0000 |
commit | e2bc1cb711ac819e52fe171a0fc34a13a1deb6ce (patch) | |
tree | d0e44371630bfb9c82165fc0884f7890395ff031 /tools/llvm-stub | |
parent | 5b90a7296cdf70e5b6eca9edf28fcda74f4551bf (diff) |
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
Diffstat (limited to 'tools/llvm-stub')
-rw-r--r-- | tools/llvm-stub/llvm-stub.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/tools/llvm-stub/llvm-stub.c b/tools/llvm-stub/llvm-stub.c index 7e123cf607..91537a0b9c 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". */ |