diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-09-17 17:46:16 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-09-17 17:46:16 -0400 |
| commit | b8ee3a8143c91bcc7ba5d7166dd88c217db89b25 (patch) | |
| tree | e9dde7cf42c1263c9da49798f89858f39ad60d12 /src/main.cpp | |
| parent | faaaf8832772108b240a277f984c9dbdd046f98e (diff) | |
| download | zig-b8ee3a8143c91bcc7ba5d7166dd88c217db89b25.tar.gz zig-b8ee3a8143c91bcc7ba5d7166dd88c217db89b25.zip | |
add -mllvm support
useful for debugging crashes in llvm optimizer
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 66f75be449..86a6b82ac9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -50,6 +50,7 @@ static int usage(const char *arg0) { " --zig-std-dir [path] directory where zig standard library resides\n" " -dirafter [dir] same as -isystem but do it last\n" " -isystem [dir] add additional search path for other .h files\n" + " -mllvm [arg] additional arguments to forward to LLVM's option processing\n" "Link Options:\n" " --ar-path [path] set the path to ar\n" " --dynamic-linker [path] set the path to ld.so\n" @@ -190,6 +191,7 @@ int main(int argc, char **argv) { const char *zig_std_dir = nullptr; const char *dynamic_linker = nullptr; ZigList<const char *> clang_argv = {0}; + ZigList<const char *> llvm_argv = {0}; ZigList<const char *> lib_dirs = {0}; ZigList<const char *> link_libs = {0}; ZigList<const char *> frameworks = {0}; @@ -420,6 +422,11 @@ int main(int argc, char **argv) { } else if (strcmp(arg, "-dirafter") == 0) { clang_argv.append("-dirafter"); clang_argv.append(argv[i]); + } else if (strcmp(arg, "-mllvm") == 0) { + clang_argv.append("-mllvm"); + clang_argv.append(argv[i]); + + llvm_argv.append(argv[i]); } else if (strcmp(arg, "--library-path") == 0 || strcmp(arg, "-L") == 0) { lib_dirs.append(argv[i]); } else if (strcmp(arg, "--library") == 0) { @@ -604,6 +611,7 @@ int main(int argc, char **argv) { codegen_set_each_lib_rpath(g, each_lib_rpath); codegen_set_clang_argv(g, clang_argv.items, clang_argv.length); + codegen_set_llvm_argv(g, llvm_argv.items, llvm_argv.length); codegen_set_strip(g, strip); codegen_set_is_static(g, is_static); if (libc_lib_dir) |
