update clang.zig and translate-c for the clang C++ API changes
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user