update clang.zig and translate-c for the clang C++ API changes

This commit is contained in:
Andrew Kelley
2020-12-16 14:29:27 -07:00
parent 755c558026
commit da54e7cd00
2 changed files with 13 additions and 7 deletions

View File

@@ -408,7 +408,7 @@ pub const Expr = opaque {
extern fn ZigClangExpr_getBeginLoc(*const Expr) SourceLocation;
pub const EvaluateAsConstantExpr = ZigClangExpr_EvaluateAsConstantExpr;
extern fn ZigClangExpr_EvaluateAsConstantExpr(*const Expr, *ExprEvalResult, Expr_ConstExprUsage, *const ASTContext) bool;
extern fn ZigClangExpr_EvaluateAsConstantExpr(*const Expr, *ExprEvalResult, Expr_ConstantExprKind, *const ASTContext) bool;
};
pub const FieldDecl = opaque {
@@ -1250,6 +1250,8 @@ pub const CK = extern enum {
IntegralCast,
IntegralToBoolean,
IntegralToFloating,
FloatingToFixedPoint,
FixedPointToFloating,
FixedPointCast,
FixedPointToIntegral,
IntegralToFixedPoint,
@@ -1356,6 +1358,7 @@ pub const DeclKind = extern enum {
MSGuid,
OMPDeclareMapper,
OMPDeclareReduction,
TemplateParamObject,
UnresolvedUsingValue,
OMPAllocate,
OMPRequires,
@@ -1466,6 +1469,8 @@ pub const BuiltinTypeKind = extern enum {
SveFloat64x4,
SveBFloat16x4,
SveBool,
VectorQuad,
VectorPair,
Void,
Bool,
Char_U,
@@ -1619,9 +1624,11 @@ pub const PreprocessedEntity_EntityKind = extern enum {
InclusionDirectiveKind,
};
pub const Expr_ConstExprUsage = extern enum {
EvaluateForCodeGen,
EvaluateForMangling,
pub const Expr_ConstantExprKind = extern enum {
Normal,
NonClassTemplateArgument,
ClassTemplateArgument,
ImmediateInvocation,
};
pub const UnaryExprOrTypeTrait_Kind = extern enum {

View File

@@ -2028,7 +2028,6 @@ fn transCCast(
// 1. If src_type is an enum, determine the underlying signed int type
// 2. Extend or truncate without changing signed-ness.
// 3. Bit-cast to correct signed-ness
const src_type_is_signed = cIsSignedInteger(src_type) or cIsEnum(src_type);
const src_int_type = if (cIsInteger(src_type)) src_type else cIntTypeForEnum(src_type);
const src_int_expr = if (cIsInteger(src_type)) expr else try transEnumToInt(rp.c, expr);
@@ -2859,7 +2858,7 @@ fn transDefault(
fn transConstantExpr(rp: RestorePoint, scope: *Scope, expr: *const clang.Expr, used: ResultUsed) TransError!*ast.Node {
var result: clang.ExprEvalResult = undefined;
if (!expr.EvaluateAsConstantExpr(&result, .EvaluateForCodeGen, rp.c.clang_context))
if (!expr.EvaluateAsConstantExpr(&result, .Normal, rp.c.clang_context))
return revertAndWarn(rp, error.UnsupportedTranslation, expr.getBeginLoc(), "invalid constant expression", .{});
var val_node: ?*ast.Node = null;
@@ -5881,7 +5880,7 @@ fn parseCPrimaryExprInner(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!*
return error.ParseError;
}
const ident_token = try appendTokenFmt(c, .Identifier, "{}_{}", .{slice, m.slice()});
const ident_token = try appendTokenFmt(c, .Identifier, "{}_{}", .{ slice, m.slice() });
const identifier = try c.arena.create(ast.Node.OneToken);
identifier.* = .{
.base = .{ .tag = .Identifier },