We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
usualArithmeticConversion
The following code triggers an assertion failure:
int foo = 0xFFFFFFFFFF + 1u;
thread 15090414 panic: reached unreachable code /Users/ehaas/source/zig/build/lib/zig/std/debug.zig:226:14: 0x10705a2f8 in std.debug.assert (arocc) if (!ok) unreachable; // assertion failure ^ /Users/ehaas/source/arocc/src/Parser.zig:3590:19: 0x107186309 in Parser.Result.usualArithmeticConversion (arocc) assert(b_unsigned and (@enumToInt(b_promoted.specifier) >= @enumToInt(a_promoted.specifier))); ^ /Users/ehaas/source/arocc/src/Parser.zig:3345:44: 0x10714e016 in Parser.Result.adjustTypes (arocc) try a.usualArithmeticConversion(b, p); ^ /Users/ehaas/source/arocc/src/Parser.zig:4186:32: 0x1071bc2f0 in Parser.addExpr (arocc) if (try lhs.adjustTypes(minus.?, &rhs, p, if (plus != null) .add else .sub)) { ^ /Users/ehaas/source/arocc/src/Parser.zig:4145:28: 0x1071bb794 in Parser.shiftExpr (arocc) var lhs = try p.addExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:4116:30: 0x1071bafb4 in Parser.compExpr (arocc) var lhs = try p.shiftExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:4091:29: 0x1071ba534 in Parser.eqExpr (arocc) var lhs = try p.compExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:4071:27: 0x1071b8614 in Parser.andExpr (arocc) var lhs = try p.eqExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:4051:28: 0x1071b1404 in Parser.xorExpr (arocc) var lhs = try p.andExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:4031:28: 0x1071a4b74 in Parser.orExpr (arocc) var lhs = try p.xorExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:4009:27: 0x1071853c4 in Parser.landExpr (arocc) var lhs = try p.orExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:3987:29: 0x10714d424 in Parser.lorExpr (arocc) var lhs = try p.landExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:3949:29: 0x10711bb94 in Parser.condExpr (arocc) var cond = try p.lorExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:3804:29: 0x10716b2a4 in Parser.assignExpr (arocc) var lhs = try p.condExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:2126:35: 0x107129bc7 in Parser.initializer (arocc) var res = try p.assignExpr(); ^ /Users/ehaas/source/arocc/src/Parser.zig:1197:47: 0x1070cf447 in Parser.initDeclarator (arocc) var init_list_expr = try p.initializer(init_d.d.ty); ^ /Users/ehaas/source/arocc/src/Parser.zig:576:39: 0x10709c5b9 in Parser.decl (arocc) var init_d = (try p.initDeclarator(&decl_spec)) orelse { ^ /Users/ehaas/source/arocc/src/Parser.zig:461:19: 0x1070883ba in Parser.parse (arocc) if (p.decl() catch |er| switch (er) { ^ /Users/ehaas/source/arocc/src/main.zig:257:32: 0x10706ac69 in processSource (arocc) var tree = try Parser.parse(&pp); ^ /Users/ehaas/source/arocc/src/main.zig:223:22: 0x10705f211 in handleArgs (arocc) processSource(comp, source, builtin, user_macros) catch |e| switch (e) { ^ /Users/ehaas/source/arocc/src/main.zig:41:15: 0x10705c39d in main (arocc) handleArgs(&comp, args) catch |err| switch (err) { ^ /Users/ehaas/source/zig/build/lib/zig/std/start.zig:524:29: 0x1070db5fc in std.start.callMain (arocc) return root.main(); ^ /Users/ehaas/source/zig/build/lib/zig/std/start.zig:469:12: 0x107060317 in std.start.callMainWithArgs (arocc) return @call(.{ .modifier = .always_inline }, callMain, .{}); ^ /Users/ehaas/source/zig/build/lib/zig/std/start.zig:434:12: 0x107060255 in std.start.main (arocc) return @call(.{ .modifier = .always_inline }, callMainWithArgs, .{ @intCast(usize, c_argc), c_argv, envp }); ^ ???:?:?: 0x7fff204ecf3c in ??? (???) ???:?:?: 0x1 in ??? (???) [1] 89704 abort ./zig-out/bin/arocc test/cases/crash.c
The text was updated successfully, but these errors were encountered:
This can also be triggered with a comparison:
void foo(void) { int x = 1L == 1U; }
Sorry, something went wrong.
I have fixed this locally but forgotten to push the change.
ccd6be5
No branches or pull requests
The following code triggers an assertion failure:
The text was updated successfully, but these errors were encountered: