authorgravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2024-09-01 14:43:30+02:00
committergravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2024-09-01 14:43:30+02:00
log76908da3ac2f4ba64a80d6618211e7390995c00e
tree8ead7b3d0f0e20405edb40f0127c8848e070f867
parent7cb87c14fe593b60b7034f12d2efd927309a0b96

LLVM: Set module flag behaviors to match what LLVM and clang does


1 files changed, 8 insertions(+), 5 deletions(-)

src/codegen/llvm.zig+8-5
...@@ -1102,12 +1102,15 @@ pub const Object = struct {...@@ -1102,12 +1102,15 @@ pub const Object = struct {
1102 var module_flags = try std.ArrayList(Builder.Metadata).initCapacity(o.gpa, 6);1102 var module_flags = try std.ArrayList(Builder.Metadata).initCapacity(o.gpa, 6);
1103 defer module_flags.deinit();1103 defer module_flags.deinit();
11041104
1105 const behavior_error = try o.builder.metadataConstant(try o.builder.intConst(.i32, 1));
1105 const behavior_warning = try o.builder.metadataConstant(try o.builder.intConst(.i32, 2));1106 const behavior_warning = try o.builder.metadataConstant(try o.builder.intConst(.i32, 2));
1107 const behavior_max = try o.builder.metadataConstant(try o.builder.intConst(.i32, 7));
1108 const behavior_min = try o.builder.metadataConstant(try o.builder.intConst(.i32, 8));
11061109
1107 const large_pic = target_util.usesLargePIC(comp.root_mod.resolved_target.result);1110 const large_pic = target_util.usesLargePIC(comp.root_mod.resolved_target.result);
1108 if (comp.root_mod.pic) {1111 if (comp.root_mod.pic) {
1109 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(1112 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(
1110 behavior_warning,1113 behavior_min,
1111 try o.builder.metadataString("PIC Level"),1114 try o.builder.metadataString("PIC Level"),
1112 try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, if (large_pic) 2 else 1))),1115 try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, if (large_pic) 2 else 1))),
1113 ));1116 ));
...@@ -1115,7 +1118,7 @@ pub const Object = struct {...@@ -1115,7 +1118,7 @@ pub const Object = struct {
11151118
1116 if (comp.config.pie) {1119 if (comp.config.pie) {
1117 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(1120 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(
1118 behavior_warning,1121 behavior_max,
1119 try o.builder.metadataString("PIE Level"),1122 try o.builder.metadataString("PIE Level"),
1120 try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, if (large_pic) 2 else 1))),1123 try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, if (large_pic) 2 else 1))),
1121 ));1124 ));
...@@ -1123,7 +1126,7 @@ pub const Object = struct {...@@ -1123,7 +1126,7 @@ pub const Object = struct {
11231126
1124 if (comp.root_mod.code_model != .default) {1127 if (comp.root_mod.code_model != .default) {
1125 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(1128 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(
1126 behavior_warning,1129 behavior_error,
1127 try o.builder.metadataString("Code Model"),1130 try o.builder.metadataString("Code Model"),
1128 try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, switch (comp.root_mod.code_model) {1131 try o.builder.metadataConstant(try o.builder.intConst(.i32, @as(i32, switch (comp.root_mod.code_model) {
1129 .tiny => 0,1132 .tiny => 0,
...@@ -1147,14 +1150,14 @@ pub const Object = struct {...@@ -1147,14 +1150,14 @@ pub const Object = struct {
1147 .strip => unreachable,1150 .strip => unreachable,
1148 .dwarf => |f| {1151 .dwarf => |f| {
1149 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(1152 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(
1150 behavior_warning,1153 behavior_max,
1151 try o.builder.metadataString("Dwarf Version"),1154 try o.builder.metadataString("Dwarf Version"),
1152 try o.builder.metadataConstant(try o.builder.intConst(.i32, 4)),1155 try o.builder.metadataConstant(try o.builder.intConst(.i32, 4)),
1153 ));1156 ));
11541157
1155 if (f == .@"64") {1158 if (f == .@"64") {
1156 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(1159 module_flags.appendAssumeCapacity(try o.builder.metadataModuleFlag(
1157 behavior_warning,1160 behavior_max,
1158 try o.builder.metadataString("DWARF64"),1161 try o.builder.metadataString("DWARF64"),
1159 try o.builder.metadataConstant(.@"1"),1162 try o.builder.metadataConstant(.@"1"),
1160 ));1163 ));