aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorGeorge Roman <george.roman.99@gmail.com>2020-04-24 15:48:24 +0300
committerAndrew Kelley <andrew@ziglang.org>2020-04-25 15:54:02 -0400
commit0c037a85616400424a8489be0ff150e5bdd496e5 (patch)
tree596383d6f54b30488de281c2404c080af0258cf5 /src/codegen.cpp
parenta7a8c433d0153bf8d71d17f2cf54027ba8eff805 (diff)
downloadzig-0c037a85616400424a8489be0ff150e5bdd496e5.tar.gz
zig-0c037a85616400424a8489be0ff150e5bdd496e5.zip
Pass each target feature flag separately
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 7d3e008a22..1b7d8e7013 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -9362,10 +9362,16 @@ void add_cc_args(CodeGen *g, ZigList<const char *> &args, const char *out_dep_pa
args.append(g->zig_target->llvm_cpu_name);
}
if (g->zig_target->llvm_cpu_features != nullptr) {
- args.append("-Xclang");
- args.append("-target-feature");
- args.append("-Xclang");
- args.append(g->zig_target->llvm_cpu_features);
+ // https://github.com/ziglang/zig/issues/5017
+ SplitIterator it = memSplit(str(g->zig_target->llvm_cpu_features), str(","));
+ Optional<Slice<uint8_t>> flag = SplitIterator_next(&it);
+ while (flag.is_some) {
+ args.append("-Xclang");
+ args.append("-target-feature");
+ args.append("-Xclang");
+ args.append(buf_ptr(buf_create_from_slice(flag.value)));
+ flag = SplitIterator_next(&it);
+ }
}
if (translate_c) {
// this gives us access to preprocessing entities, presumably at