diff options
| author | antlilja <liljaanton2001@gmail.com> | 2024-09-01 14:43:30 +0200 |
|---|---|---|
| committer | antlilja <liljaanton2001@gmail.com> | 2024-09-01 14:43:30 +0200 |
| commit | 76908da3ac2f4ba64a80d6618211e7390995c00e (patch) | |
| tree | 8ead7b3d0f0e20405edb40f0127c8848e070f867 /src/codegen/llvm.zig | |
| parent | 7cb87c14fe593b60b7034f12d2efd927309a0b96 (diff) | |
| download | zig-76908da3ac2f4ba64a80d6618211e7390995c00e.tar.gz zig-76908da3ac2f4ba64a80d6618211e7390995c00e.zip | |
LLVM: Set module flag behaviors to match what LLVM and clang does
Diffstat (limited to 'src/codegen/llvm.zig')
| -rw-r--r-- | src/codegen/llvm.zig | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 14571b9d8f..222845d32e 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -1102,12 +1102,15 @@ pub const Object = struct { var module_flags = try std.ArrayList(Builder.Metadata).initCapacity(o.gpa, 6); defer module_flags.deinit(); + const behavior_error = try o.builder.metadataConstant(try o.builder.intConst(.i32, 1)); const behavior_warning = try o.builder.metadataConstant(try o.builder.intConst(.i32, 2)); + const behavior_max = try o.builder.metadataConstant(try o.builder.intConst(.i32, 7)); + const behavior_min = try o.builder.metadataConstant(try o.builder.intConst(.i32, 8)); const large_pic = target_util.usesLargePIC(comp.root_mod.resolved_target.result); if (comp.root_mod.pic) { module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag( - behavior_warning, + behavior_min, try o.builder.metadataString("PIC Level"), try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, if (large_pic) 2 else 1))), )); @@ -1115,7 +1118,7 @@ pub const Object = struct { if (comp.config.pie) { module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag( - behavior_warning, + behavior_max, try o.builder.metadataString("PIE Level"), try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, if (large_pic) 2 else 1))), )); @@ -1123,7 +1126,7 @@ pub const Object = struct { if (comp.root_mod.code_model != .default) { module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag( - behavior_warning, + behavior_error, try o.builder.metadataString("Code Model"), try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, switch (comp.root_mod.code_model) { .tiny => 0, @@ -1147,14 +1150,14 @@ pub const Object = struct { .strip => unreachable, .dwarf => |f| { module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag( - behavior_warning, + behavior_max, try o.builder.metadataString("Dwarf Version"), try o.builder.metadataConstant(try o.builder.intConst(.i32, 4)), )); if (f == .@"64") { module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag( - behavior_warning, + behavior_max, try o.builder.metadataString("DWARF64"), try o.builder.metadataConstant(.@"1"), )); |
