aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm-stub
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-06-15 12:07:01 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-06-15 12:07:01 +0000
commite2bc1cb711ac819e52fe171a0fc34a13a1deb6ce (patch)
treed0e44371630bfb9c82165fc0884f7890395ff031 /tools/llvm-stub
parent5b90a7296cdf70e5b6eca9edf28fcda74f4551bf (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.c14
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". */