Merge remote-tracking branch 'origin/master' into llvm12

This commit is contained in:
Andrew Kelley 2020-12-16 14:24:36 -07:00
commit 755c558026
3 changed files with 35 additions and 1 deletions

View File

@ -1169,7 +1169,7 @@ pub const Order = enum {
return switch (self) {
.lt => .gt,
.eq => .eq,
.gt => .gt,
.gt => .lt,
};
}
@ -1266,6 +1266,29 @@ test "compare between signed and unsigned" {
testing.expect(compare(@as(u8, 1), .eq, @as(u8, 1)));
}
test "order" {
testing.expect(order(0, 0) == .eq);
testing.expect(order(1, 0) == .gt);
testing.expect(order(-1, 0) == .lt);
}
test "order.invert" {
testing.expect(Order.invert(order(0, 0)) == .eq);
testing.expect(Order.invert(order(1, 0)) == .lt);
testing.expect(Order.invert(order(-1, 0)) == .gt);
}
test "order.compare" {
testing.expect(order(-1, 0).compare(.lt));
testing.expect(order(-1, 0).compare(.lte));
testing.expect(order(0, 0).compare(.lte));
testing.expect(order(0, 0).compare(.eq));
testing.expect(order(0, 0).compare(.gte));
testing.expect(order(1, 0).compare(.gte));
testing.expect(order(1, 0).compare(.gt));
testing.expect(order(1, 0).compare(.neq));
}
test "math.comptime" {
comptime const v = sin(@as(f32, 1)) + ln(@as(f32, 5));
testing.expect(v == sin(@as(f32, 1)) + ln(@as(f32, 5)));

View File

@ -1797,6 +1797,10 @@ fn exprIsStringLiteral(expr: *const clang.Expr) bool {
const op_expr = @ptrCast(*const clang.UnaryOperator, expr).getSubExpr();
return exprIsStringLiteral(op_expr);
},
.ParenExprClass => {
const op_expr = @ptrCast(*const clang.ParenExpr, expr).getSubExpr();
return exprIsStringLiteral(op_expr);
},
else => return false,
}
}

View File

@ -3,6 +3,13 @@ const tests = @import("tests.zig");
const nl = std.cstr.line_sep;
pub fn addCases(cases: *tests.RunTranslatedCContext) void {
cases.add("parenthesized string literal",
\\void foo(const char *s) {}
\\int main(void) {
\\ foo(("bar"));
\\}
, "");
cases.add("variable shadowing type type",
\\#include <stdlib.h>
\\int main() {