authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-05 11:17:35-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-05 11:17:35-05:00
log5b96cc236c4139c0b8db383ff440366f5276aec8
tree87ed6443d9d0175e414538dd36b1252716ebe8b5
parent197ffe009281ccbfbb86c5e32c3e470a5d98d3a4

update to build against llvm trunk


4 files changed, 352 insertions(+), 325 deletions(-)

src/target.cpp+14-4
...@@ -13,6 +13,8 @@...@@ -13,6 +13,8 @@
13#include <stdio.h>13#include <stdio.h>
1414
15static const ArchType arch_list[] = {15static const ArchType arch_list[] = {
16 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_5a},
17 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_4a},
16 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_3a},18 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_3a},
17 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_2a},19 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_2a},
18 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_1a},20 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_1a},
...@@ -34,6 +36,8 @@ static const ArchType arch_list[] = {...@@ -34,6 +36,8 @@ static const ArchType arch_list[] = {
34 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v5te},36 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v5te},
35 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v4t},37 {ZigLLVM_arm, ZigLLVM_ARMSubArch_v4t},
3638
39 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_5a},
40 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_4a},
37 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_3a},41 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_3a},
38 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_2a},42 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_2a},
39 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_1a},43 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_1a},
...@@ -55,6 +59,8 @@ static const ArchType arch_list[] = {...@@ -55,6 +59,8 @@ static const ArchType arch_list[] = {
55 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v5te},59 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v5te},
56 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v4t},60 {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v4t},
5761
62 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_5a},
63 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_4a},
58 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_3a},64 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_3a},
59 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_2a},65 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_2a},
60 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_1a},66 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8_1a},
...@@ -63,6 +69,8 @@ static const ArchType arch_list[] = {...@@ -63,6 +69,8 @@ static const ArchType arch_list[] = {
63 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8m_baseline},69 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8m_baseline},
64 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8m_mainline},70 {ZigLLVM_aarch64, ZigLLVM_ARMSubArch_v8m_mainline},
6571
72 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_5a},
73 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_4a},
66 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_3a},74 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_3a},
67 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_2a},75 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_2a},
68 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_1a},76 {ZigLLVM_aarch64_be, ZigLLVM_ARMSubArch_v8_1a},
...@@ -76,10 +84,12 @@ static const ArchType arch_list[] = {...@@ -76,10 +84,12 @@ static const ArchType arch_list[] = {
76 {ZigLLVM_bpfel, ZigLLVM_NoSubArch},84 {ZigLLVM_bpfel, ZigLLVM_NoSubArch},
77 {ZigLLVM_bpfeb, ZigLLVM_NoSubArch},85 {ZigLLVM_bpfeb, ZigLLVM_NoSubArch},
78 {ZigLLVM_hexagon, ZigLLVM_NoSubArch},86 {ZigLLVM_hexagon, ZigLLVM_NoSubArch},
79 {ZigLLVM_mips, ZigLLVM_NoSubArch},87
80 {ZigLLVM_mipsel, ZigLLVM_NoSubArch},88 {ZigLLVM_mips, ZigLLVM_MipsSubArch_r6},
81 {ZigLLVM_mips64, ZigLLVM_NoSubArch},89 {ZigLLVM_mipsel, ZigLLVM_MipsSubArch_r6},
82 {ZigLLVM_mips64el, ZigLLVM_NoSubArch},90 {ZigLLVM_mips64, ZigLLVM_MipsSubArch_r6},
91 {ZigLLVM_mips64el, ZigLLVM_MipsSubArch_r6},
92
83 {ZigLLVM_msp430, ZigLLVM_NoSubArch},93 {ZigLLVM_msp430, ZigLLVM_NoSubArch},
84 {ZigLLVM_nios2, ZigLLVM_NoSubArch},94 {ZigLLVM_nios2, ZigLLVM_NoSubArch},
85 {ZigLLVM_ppc, ZigLLVM_NoSubArch},95 {ZigLLVM_ppc, ZigLLVM_NoSubArch},
src/translate_c.cpp+330-321
...@@ -509,7 +509,7 @@ static QualType get_expr_qual_type_before_implicit_cast(Context *c, const Expr *...@@ -509,7 +509,7 @@ static QualType get_expr_qual_type_before_implicit_cast(Context *c, const Expr *
509}509}
510510
511static AstNode *get_expr_type(Context *c, const Expr *expr) {511static AstNode *get_expr_type(Context *c, const Expr *expr) {
512 return trans_qual_type(c, get_expr_qual_type(c, expr), expr->getLocStart());512 return trans_qual_type(c, get_expr_qual_type(c, expr), expr->getBeginLoc());
513}513}
514514
515static bool qual_types_equal(QualType t1, QualType t2) {515static bool qual_types_equal(QualType t1, QualType t2) {
...@@ -1203,7 +1203,7 @@ static AstNode *trans_return_stmt(Context *c, TransScope *scope, const ReturnStm...@@ -1203,7 +1203,7 @@ static AstNode *trans_return_stmt(Context *c, TransScope *scope, const ReturnStm
1203static AstNode *trans_integer_literal(Context *c, const IntegerLiteral *stmt) {1203static AstNode *trans_integer_literal(Context *c, const IntegerLiteral *stmt) {
1204 llvm::APSInt result;1204 llvm::APSInt result;
1205 if (!stmt->EvaluateAsInt(result, *c->ctx)) {1205 if (!stmt->EvaluateAsInt(result, *c->ctx)) {
1206 emit_warning(c, stmt->getLocStart(), "invalid integer literal");1206 emit_warning(c, stmt->getBeginLoc(), "invalid integer literal");
1207 return nullptr;1207 return nullptr;
1208 }1208 }
1209 return trans_create_node_apint(c, result);1209 return trans_create_node_apint(c, result);
...@@ -1318,7 +1318,7 @@ static AstNode *trans_create_assign(Context *c, ResultUsed result_used, TransSco...@@ -1318,7 +1318,7 @@ static AstNode *trans_create_assign(Context *c, ResultUsed result_used, TransSco
1318static AstNode *trans_create_shift_op(Context *c, TransScope *scope, QualType result_type,1318static AstNode *trans_create_shift_op(Context *c, TransScope *scope, QualType result_type,
1319 Expr *lhs_expr, BinOpType bin_op, Expr *rhs_expr)1319 Expr *lhs_expr, BinOpType bin_op, Expr *rhs_expr)
1320{1320{
1321 const SourceLocation &rhs_location = rhs_expr->getLocStart();1321 const SourceLocation &rhs_location = rhs_expr->getBeginLoc();
1322 AstNode *rhs_type = qual_type_to_log2_int_ref(c, result_type, rhs_location);1322 AstNode *rhs_type = qual_type_to_log2_int_ref(c, result_type, rhs_location);
1323 // lhs >> u5(rh)1323 // lhs >> u5(rh)
13241324
...@@ -1335,13 +1335,13 @@ static AstNode *trans_create_shift_op(Context *c, TransScope *scope, QualType re...@@ -1335,13 +1335,13 @@ static AstNode *trans_create_shift_op(Context *c, TransScope *scope, QualType re
1335static AstNode *trans_binary_operator(Context *c, ResultUsed result_used, TransScope *scope, const BinaryOperator *stmt) {1335static AstNode *trans_binary_operator(Context *c, ResultUsed result_used, TransScope *scope, const BinaryOperator *stmt) {
1336 switch (stmt->getOpcode()) {1336 switch (stmt->getOpcode()) {
1337 case BO_PtrMemD:1337 case BO_PtrMemD:
1338 emit_warning(c, stmt->getLocStart(), "TODO handle more C binary operators: BO_PtrMemD");1338 emit_warning(c, stmt->getBeginLoc(), "TODO handle more C binary operators: BO_PtrMemD");
1339 return nullptr;1339 return nullptr;
1340 case BO_PtrMemI:1340 case BO_PtrMemI:
1341 emit_warning(c, stmt->getLocStart(), "TODO handle more C binary operators: BO_PtrMemI");1341 emit_warning(c, stmt->getBeginLoc(), "TODO handle more C binary operators: BO_PtrMemI");
1342 return nullptr;1342 return nullptr;
1343 case BO_Cmp:1343 case BO_Cmp:
1344 emit_warning(c, stmt->getLocStart(), "TODO handle more C binary operators: BO_Cmp");1344 emit_warning(c, stmt->getBeginLoc(), "TODO handle more C binary operators: BO_Cmp");
1345 return nullptr;1345 return nullptr;
1346 case BO_Mul:1346 case BO_Mul:
1347 return trans_create_bin_op(c, scope, stmt->getLHS(),1347 return trans_create_bin_op(c, scope, stmt->getLHS(),
...@@ -1449,7 +1449,7 @@ static AstNode *trans_binary_operator(Context *c, ResultUsed result_used, TransS...@@ -1449,7 +1449,7 @@ static AstNode *trans_binary_operator(Context *c, ResultUsed result_used, TransS
1449static AstNode *trans_create_compound_assign_shift(Context *c, ResultUsed result_used, TransScope *scope,1449static AstNode *trans_create_compound_assign_shift(Context *c, ResultUsed result_used, TransScope *scope,
1450 const CompoundAssignOperator *stmt, BinOpType assign_op, BinOpType bin_op)1450 const CompoundAssignOperator *stmt, BinOpType assign_op, BinOpType bin_op)
1451{1451{
1452 const SourceLocation &rhs_location = stmt->getRHS()->getLocStart();1452 const SourceLocation &rhs_location = stmt->getRHS()->getBeginLoc();
1453 AstNode *rhs_type = qual_type_to_log2_int_ref(c, stmt->getComputationLHSType(), rhs_location);1453 AstNode *rhs_type = qual_type_to_log2_int_ref(c, stmt->getComputationLHSType(), rhs_location);
14541454
1455 bool use_intermediate_casts = stmt->getComputationLHSType().getTypePtr() != stmt->getComputationResultType().getTypePtr();1455 bool use_intermediate_casts = stmt->getComputationLHSType().getTypePtr() != stmt->getComputationResultType().getTypePtr();
...@@ -1598,13 +1598,13 @@ static AstNode *trans_compound_assign_operator(Context *c, ResultUsed result_use...@@ -1598,13 +1598,13 @@ static AstNode *trans_compound_assign_operator(Context *c, ResultUsed result_use
1598 else1598 else
1599 return trans_create_compound_assign(c, result_used, scope, stmt, BinOpTypeAssignTimes, BinOpTypeMult);1599 return trans_create_compound_assign(c, result_used, scope, stmt, BinOpTypeAssignTimes, BinOpTypeMult);
1600 case BO_DivAssign:1600 case BO_DivAssign:
1601 emit_warning(c, stmt->getLocStart(), "TODO handle more C compound assign operators: BO_DivAssign");1601 emit_warning(c, stmt->getBeginLoc(), "TODO handle more C compound assign operators: BO_DivAssign");
1602 return nullptr;1602 return nullptr;
1603 case BO_RemAssign:1603 case BO_RemAssign:
1604 emit_warning(c, stmt->getLocStart(), "TODO handle more C compound assign operators: BO_RemAssign");1604 emit_warning(c, stmt->getBeginLoc(), "TODO handle more C compound assign operators: BO_RemAssign");
1605 return nullptr;1605 return nullptr;
1606 case BO_Cmp:1606 case BO_Cmp:
1607 emit_warning(c, stmt->getLocStart(), "TODO handle more C compound assign operators: BO_Cmp");1607 emit_warning(c, stmt->getBeginLoc(), "TODO handle more C compound assign operators: BO_Cmp");
1608 return nullptr;1608 return nullptr;
1609 case BO_AddAssign:1609 case BO_AddAssign:
1610 if (qual_type_has_wrapping_overflow(c, stmt->getType()))1610 if (qual_type_has_wrapping_overflow(c, stmt->getType()))
...@@ -1694,160 +1694,163 @@ static AstNode *trans_implicit_cast_expr(Context *c, TransScope *scope, const Im...@@ -1694,160 +1694,163 @@ static AstNode *trans_implicit_cast_expr(Context *c, TransScope *scope, const Im
1694 case CK_NullToPointer:1694 case CK_NullToPointer:
1695 return trans_create_node(c, NodeTypeNullLiteral);1695 return trans_create_node(c, NodeTypeNullLiteral);
1696 case CK_Dependent:1696 case CK_Dependent:
1697 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_Dependent");1697 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_Dependent");
1698 return nullptr;1698 return nullptr;
1699 case CK_LValueBitCast:1699 case CK_LValueBitCast:
1700 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_LValueBitCast");1700 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_LValueBitCast");
1701 return nullptr;1701 return nullptr;
1702 case CK_NoOp:1702 case CK_NoOp:
1703 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_NoOp");1703 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_NoOp");
1704 return nullptr;1704 return nullptr;
1705 case CK_BaseToDerived:1705 case CK_BaseToDerived:
1706 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_BaseToDerived");1706 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_BaseToDerived");
1707 return nullptr;1707 return nullptr;
1708 case CK_DerivedToBase:1708 case CK_DerivedToBase:
1709 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_DerivedToBase");1709 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_DerivedToBase");
1710 return nullptr;1710 return nullptr;
1711 case CK_UncheckedDerivedToBase:1711 case CK_UncheckedDerivedToBase:
1712 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_UncheckedDerivedToBase");1712 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_UncheckedDerivedToBase");
1713 return nullptr;1713 return nullptr;
1714 case CK_Dynamic:1714 case CK_Dynamic:
1715 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_Dynamic");1715 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_Dynamic");
1716 return nullptr;1716 return nullptr;
1717 case CK_ToUnion:1717 case CK_ToUnion:
1718 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ToUnion");1718 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ToUnion");
1719 return nullptr;1719 return nullptr;
1720 case CK_NullToMemberPointer:1720 case CK_NullToMemberPointer:
1721 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_NullToMemberPointer");1721 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_NullToMemberPointer");
1722 return nullptr;1722 return nullptr;
1723 case CK_BaseToDerivedMemberPointer:1723 case CK_BaseToDerivedMemberPointer:
1724 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_BaseToDerivedMemberPointer");1724 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_BaseToDerivedMemberPointer");
1725 return nullptr;1725 return nullptr;
1726 case CK_DerivedToBaseMemberPointer:1726 case CK_DerivedToBaseMemberPointer:
1727 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_DerivedToBaseMemberPointer");1727 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_DerivedToBaseMemberPointer");
1728 return nullptr;1728 return nullptr;
1729 case CK_MemberPointerToBoolean:1729 case CK_MemberPointerToBoolean:
1730 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_MemberPointerToBoolean");1730 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_MemberPointerToBoolean");
1731 return nullptr;1731 return nullptr;
1732 case CK_ReinterpretMemberPointer:1732 case CK_ReinterpretMemberPointer:
1733 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ReinterpretMemberPointer");1733 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ReinterpretMemberPointer");
1734 return nullptr;1734 return nullptr;
1735 case CK_UserDefinedConversion:1735 case CK_UserDefinedConversion:
1736 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_UserDefinedConversion");1736 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_UserDefinedConversion");
1737 return nullptr;1737 return nullptr;
1738 case CK_ConstructorConversion:1738 case CK_ConstructorConversion:
1739 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ConstructorConversion");1739 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ConstructorConversion");
1740 return nullptr;1740 return nullptr;
1741 case CK_IntegralToPointer:1741 case CK_IntegralToPointer:
1742 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralToPointer");1742 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralToPointer");
1743 return nullptr;1743 return nullptr;
1744 case CK_PointerToIntegral:1744 case CK_PointerToIntegral:
1745 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_PointerToIntegral");1745 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_PointerToIntegral");
1746 return nullptr;1746 return nullptr;
1747 case CK_PointerToBoolean:1747 case CK_PointerToBoolean:
1748 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_PointerToBoolean");1748 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_PointerToBoolean");
1749 return nullptr;1749 return nullptr;
1750 case CK_ToVoid:1750 case CK_ToVoid:
1751 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ToVoid");1751 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ToVoid");
1752 return nullptr;1752 return nullptr;
1753 case CK_VectorSplat:1753 case CK_VectorSplat:
1754 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_VectorSplat");1754 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_VectorSplat");
1755 return nullptr;1755 return nullptr;
1756 case CK_IntegralToBoolean:1756 case CK_IntegralToBoolean:
1757 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralToBoolean");1757 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralToBoolean");
1758 return nullptr;1758 return nullptr;
1759 case CK_IntegralToFloating:1759 case CK_IntegralToFloating:
1760 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralToFloating");1760 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralToFloating");
1761 return nullptr;1761 return nullptr;
1762 case CK_FloatingToIntegral:1762 case CK_FloatingToIntegral:
1763 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingToIntegral");1763 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingToIntegral");
1764 return nullptr;1764 return nullptr;
1765 case CK_FloatingToBoolean:1765 case CK_FloatingToBoolean:
1766 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingToBoolean");1766 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingToBoolean");
1767 return nullptr;1767 return nullptr;
1768 case CK_BooleanToSignedIntegral:1768 case CK_BooleanToSignedIntegral:
1769 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_BooleanToSignedIntegral");1769 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_BooleanToSignedIntegral");
1770 return nullptr;1770 return nullptr;
1771 case CK_FloatingCast:1771 case CK_FloatingCast:
1772 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingCast");1772 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingCast");
1773 return nullptr;1773 return nullptr;
1774 case CK_CPointerToObjCPointerCast:1774 case CK_CPointerToObjCPointerCast:
1775 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_CPointerToObjCPointerCast");1775 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_CPointerToObjCPointerCast");
1776 return nullptr;1776 return nullptr;
1777 case CK_BlockPointerToObjCPointerCast:1777 case CK_BlockPointerToObjCPointerCast:
1778 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_BlockPointerToObjCPointerCast");1778 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_BlockPointerToObjCPointerCast");
1779 return nullptr;1779 return nullptr;
1780 case CK_AnyPointerToBlockPointerCast:1780 case CK_AnyPointerToBlockPointerCast:
1781 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_AnyPointerToBlockPointerCast");1781 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_AnyPointerToBlockPointerCast");
1782 return nullptr;1782 return nullptr;
1783 case CK_ObjCObjectLValueCast:1783 case CK_ObjCObjectLValueCast:
1784 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ObjCObjectLValueCast");1784 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ObjCObjectLValueCast");
1785 return nullptr;1785 return nullptr;
1786 case CK_FloatingRealToComplex:1786 case CK_FloatingRealToComplex:
1787 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingRealToComplex");1787 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingRealToComplex");
1788 return nullptr;1788 return nullptr;
1789 case CK_FloatingComplexToReal:1789 case CK_FloatingComplexToReal:
1790 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingComplexToReal");1790 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingComplexToReal");
1791 return nullptr;1791 return nullptr;
1792 case CK_FloatingComplexToBoolean:1792 case CK_FloatingComplexToBoolean:
1793 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingComplexToBoolean");1793 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingComplexToBoolean");
1794 return nullptr;1794 return nullptr;
1795 case CK_FloatingComplexCast:1795 case CK_FloatingComplexCast:
1796 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingComplexCast");1796 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingComplexCast");
1797 return nullptr;1797 return nullptr;
1798 case CK_FloatingComplexToIntegralComplex:1798 case CK_FloatingComplexToIntegralComplex:
1799 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_FloatingComplexToIntegralComplex");1799 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FloatingComplexToIntegralComplex");
1800 return nullptr;1800 return nullptr;
1801 case CK_IntegralRealToComplex:1801 case CK_IntegralRealToComplex:
1802 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralRealToComplex");1802 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralRealToComplex");
1803 return nullptr;1803 return nullptr;
1804 case CK_IntegralComplexToReal:1804 case CK_IntegralComplexToReal:
1805 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralComplexToReal");1805 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralComplexToReal");
1806 return nullptr;1806 return nullptr;
1807 case CK_IntegralComplexToBoolean:1807 case CK_IntegralComplexToBoolean:
1808 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralComplexToBoolean");1808 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralComplexToBoolean");
1809 return nullptr;1809 return nullptr;
1810 case CK_IntegralComplexCast:1810 case CK_IntegralComplexCast:
1811 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralComplexCast");1811 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralComplexCast");
1812 return nullptr;1812 return nullptr;
1813 case CK_IntegralComplexToFloatingComplex:1813 case CK_IntegralComplexToFloatingComplex:
1814 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntegralComplexToFloatingComplex");1814 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntegralComplexToFloatingComplex");
1815 return nullptr;1815 return nullptr;
1816 case CK_ARCProduceObject:1816 case CK_ARCProduceObject:
1817 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ARCProduceObject");1817 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ARCProduceObject");
1818 return nullptr;1818 return nullptr;
1819 case CK_ARCConsumeObject:1819 case CK_ARCConsumeObject:
1820 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ARCConsumeObject");1820 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ARCConsumeObject");
1821 return nullptr;1821 return nullptr;
1822 case CK_ARCReclaimReturnedObject:1822 case CK_ARCReclaimReturnedObject:
1823 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ARCReclaimReturnedObject");1823 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ARCReclaimReturnedObject");
1824 return nullptr;1824 return nullptr;
1825 case CK_ARCExtendBlockObject:1825 case CK_ARCExtendBlockObject:
1826 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ARCExtendBlockObject");1826 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ARCExtendBlockObject");
1827 return nullptr;1827 return nullptr;
1828 case CK_AtomicToNonAtomic:1828 case CK_AtomicToNonAtomic:
1829 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_AtomicToNonAtomic");1829 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_AtomicToNonAtomic");
1830 return nullptr;1830 return nullptr;
1831 case CK_NonAtomicToAtomic:1831 case CK_NonAtomicToAtomic:
1832 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_NonAtomicToAtomic");1832 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_NonAtomicToAtomic");
1833 return nullptr;1833 return nullptr;
1834 case CK_CopyAndAutoreleaseBlockObject:1834 case CK_CopyAndAutoreleaseBlockObject:
1835 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_CopyAndAutoreleaseBlockObject");1835 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_CopyAndAutoreleaseBlockObject");
1836 return nullptr;1836 return nullptr;
1837 case CK_BuiltinFnToFnPtr:1837 case CK_BuiltinFnToFnPtr:
1838 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_BuiltinFnToFnPtr");1838 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_BuiltinFnToFnPtr");
1839 return nullptr;
1840 case CK_ZeroToOCLEvent:
1841 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ZeroToOCLEvent");
1842 return nullptr;
1843 case CK_ZeroToOCLQueue:
1844 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ZeroToOCLQueue");
1845 return nullptr;1839 return nullptr;
1846 case CK_AddressSpaceConversion:1840 case CK_AddressSpaceConversion:
1847 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_AddressSpaceConversion");1841 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_AddressSpaceConversion");
1848 return nullptr;1842 return nullptr;
1849 case CK_IntToOCLSampler:1843 case CK_IntToOCLSampler:
1850 emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_IntToOCLSampler");1844 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_IntToOCLSampler");
1845 return nullptr;
1846 case CK_FixedPointCast:
1847 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FixedPointCast");
1848 return nullptr;
1849 case CK_FixedPointToBoolean:
1850 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_FixedPointToBoolean");
1851 return nullptr;
1852 case CK_ZeroToOCLOpaqueType:
1853 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_ZeroToOCLOpaqueType");
1851 return nullptr;1854 return nullptr;
1852 }1855 }
1853 zig_unreachable();1856 zig_unreachable();
...@@ -2010,7 +2013,7 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc...@@ -2010,7 +2013,7 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc
2010 return trans_create_node_ptr_deref(c, unwrapped);2013 return trans_create_node_ptr_deref(c, unwrapped);
2011 }2014 }
2012 case UO_Plus:2015 case UO_Plus:
2013 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Plus");2016 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation UO_Plus");
2014 return nullptr;2017 return nullptr;
2015 case UO_Minus:2018 case UO_Minus:
2016 {2019 {
...@@ -2036,7 +2039,7 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc...@@ -2036,7 +2039,7 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc
2036 node->data.bin_op_expr.bin_op = BinOpTypeSubWrap;2039 node->data.bin_op_expr.bin_op = BinOpTypeSubWrap;
2037 return node;2040 return node;
2038 } else {2041 } else {
2039 emit_warning(c, stmt->getLocStart(), "C negation with non float non integer");2042 emit_warning(c, stmt->getBeginLoc(), "C negation with non float non integer");
2040 return nullptr;2043 return nullptr;
2041 }2044 }
2042 }2045 }
...@@ -2059,16 +2062,16 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc...@@ -2059,16 +2062,16 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc
2059 return trans_create_node_prefix_op(c, PrefixOpBoolNot, sub_node);2062 return trans_create_node_prefix_op(c, PrefixOpBoolNot, sub_node);
2060 }2063 }
2061 case UO_Real:2064 case UO_Real:
2062 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Real");2065 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation UO_Real");
2063 return nullptr;2066 return nullptr;
2064 case UO_Imag:2067 case UO_Imag:
2065 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Imag");2068 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation UO_Imag");
2066 return nullptr;2069 return nullptr;
2067 case UO_Extension:2070 case UO_Extension:
2068 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Extension");2071 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation UO_Extension");
2069 return nullptr;2072 return nullptr;
2070 case UO_Coawait:2073 case UO_Coawait:
2071 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Coawait");2074 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation UO_Coawait");
2072 return nullptr;2075 return nullptr;
2073 }2076 }
2074 zig_unreachable();2077 zig_unreachable();
...@@ -2098,7 +2101,7 @@ static int trans_local_declaration(Context *c, TransScope *scope, const DeclStmt...@@ -2098,7 +2101,7 @@ static int trans_local_declaration(Context *c, TransScope *scope, const DeclStmt
2098 } else {2101 } else {
2099 init_node = trans_create_node(c, NodeTypeUndefinedLiteral);2102 init_node = trans_create_node(c, NodeTypeUndefinedLiteral);
2100 }2103 }
2101 AstNode *type_node = trans_qual_type(c, qual_type, stmt->getLocStart());2104 AstNode *type_node = trans_qual_type(c, qual_type, stmt->getBeginLoc());
2102 if (type_node == nullptr)2105 if (type_node == nullptr)
2103 return ErrorUnexpected;2106 return ErrorUnexpected;
21042107
...@@ -2114,220 +2117,223 @@ static int trans_local_declaration(Context *c, TransScope *scope, const DeclStmt...@@ -2114,220 +2117,223 @@ static int trans_local_declaration(Context *c, TransScope *scope, const DeclStmt
2114 continue;2117 continue;
2115 }2118 }
2116 case Decl::AccessSpec:2119 case Decl::AccessSpec:
2117 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind AccessSpec");2120 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind AccessSpec");
2118 return ErrorUnexpected;2121 return ErrorUnexpected;
2119 case Decl::Block:2122 case Decl::Block:
2120 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Block");2123 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Block");
2121 return ErrorUnexpected;2124 return ErrorUnexpected;
2122 case Decl::Captured:2125 case Decl::Captured:
2123 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Captured");2126 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Captured");
2124 return ErrorUnexpected;2127 return ErrorUnexpected;
2125 case Decl::ClassScopeFunctionSpecialization:2128 case Decl::ClassScopeFunctionSpecialization:
2126 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ClassScopeFunctionSpecialization");2129 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ClassScopeFunctionSpecialization");
2127 return ErrorUnexpected;2130 return ErrorUnexpected;
2128 case Decl::Empty:2131 case Decl::Empty:
2129 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Empty");2132 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Empty");
2130 return ErrorUnexpected;2133 return ErrorUnexpected;
2131 case Decl::Export:2134 case Decl::Export:
2132 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Export");2135 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Export");
2133 return ErrorUnexpected;2136 return ErrorUnexpected;
2134 case Decl::ExternCContext:2137 case Decl::ExternCContext:
2135 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ExternCContext");2138 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ExternCContext");
2136 return ErrorUnexpected;2139 return ErrorUnexpected;
2137 case Decl::FileScopeAsm:2140 case Decl::FileScopeAsm:
2138 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind FileScopeAsm");2141 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind FileScopeAsm");
2139 return ErrorUnexpected;2142 return ErrorUnexpected;
2140 case Decl::Friend:2143 case Decl::Friend:
2141 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Friend");2144 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Friend");
2142 return ErrorUnexpected;2145 return ErrorUnexpected;
2143 case Decl::FriendTemplate:2146 case Decl::FriendTemplate:
2144 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind FriendTemplate");2147 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind FriendTemplate");
2145 return ErrorUnexpected;2148 return ErrorUnexpected;
2146 case Decl::Import:2149 case Decl::Import:
2147 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Import");2150 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Import");
2148 return ErrorUnexpected;2151 return ErrorUnexpected;
2149 case Decl::LinkageSpec:2152 case Decl::LinkageSpec:
2150 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind LinkageSpec");2153 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind LinkageSpec");
2151 return ErrorUnexpected;2154 return ErrorUnexpected;
2152 case Decl::Label:2155 case Decl::Label:
2153 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Label");2156 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Label");
2154 return ErrorUnexpected;2157 return ErrorUnexpected;
2155 case Decl::Namespace:2158 case Decl::Namespace:
2156 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Namespace");2159 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Namespace");
2157 return ErrorUnexpected;2160 return ErrorUnexpected;
2158 case Decl::NamespaceAlias:2161 case Decl::NamespaceAlias:
2159 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind NamespaceAlias");2162 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind NamespaceAlias");
2160 return ErrorUnexpected;2163 return ErrorUnexpected;
2161 case Decl::ObjCCompatibleAlias:2164 case Decl::ObjCCompatibleAlias:
2162 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCCompatibleAlias");2165 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCCompatibleAlias");
2163 return ErrorUnexpected;2166 return ErrorUnexpected;
2164 case Decl::ObjCCategory:2167 case Decl::ObjCCategory:
2165 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCCategory");2168 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCCategory");
2166 return ErrorUnexpected;2169 return ErrorUnexpected;
2167 case Decl::ObjCCategoryImpl:2170 case Decl::ObjCCategoryImpl:
2168 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCCategoryImpl");2171 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCCategoryImpl");
2169 return ErrorUnexpected;2172 return ErrorUnexpected;
2170 case Decl::ObjCImplementation:2173 case Decl::ObjCImplementation:
2171 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCImplementation");2174 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCImplementation");
2172 return ErrorUnexpected;2175 return ErrorUnexpected;
2173 case Decl::ObjCInterface:2176 case Decl::ObjCInterface:
2174 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCInterface");2177 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCInterface");
2175 return ErrorUnexpected;2178 return ErrorUnexpected;
2176 case Decl::ObjCProtocol:2179 case Decl::ObjCProtocol:
2177 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCProtocol");2180 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCProtocol");
2178 return ErrorUnexpected;2181 return ErrorUnexpected;
2179 case Decl::ObjCMethod:2182 case Decl::ObjCMethod:
2180 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCMethod");2183 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCMethod");
2181 return ErrorUnexpected;2184 return ErrorUnexpected;
2182 case Decl::ObjCProperty:2185 case Decl::ObjCProperty:
2183 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCProperty");2186 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCProperty");
2184 return ErrorUnexpected;2187 return ErrorUnexpected;
2185 case Decl::BuiltinTemplate:2188 case Decl::BuiltinTemplate:
2186 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind BuiltinTemplate");2189 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind BuiltinTemplate");
2187 return ErrorUnexpected;2190 return ErrorUnexpected;
2188 case Decl::ClassTemplate:2191 case Decl::ClassTemplate:
2189 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ClassTemplate");2192 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ClassTemplate");
2190 return ErrorUnexpected;2193 return ErrorUnexpected;
2191 case Decl::FunctionTemplate:2194 case Decl::FunctionTemplate:
2192 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind FunctionTemplate");2195 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind FunctionTemplate");
2193 return ErrorUnexpected;2196 return ErrorUnexpected;
2194 case Decl::TypeAliasTemplate:2197 case Decl::TypeAliasTemplate:
2195 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind TypeAliasTemplate");2198 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind TypeAliasTemplate");
2196 return ErrorUnexpected;2199 return ErrorUnexpected;
2197 case Decl::VarTemplate:2200 case Decl::VarTemplate:
2198 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind VarTemplate");2201 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind VarTemplate");
2199 return ErrorUnexpected;2202 return ErrorUnexpected;
2200 case Decl::TemplateTemplateParm:2203 case Decl::TemplateTemplateParm:
2201 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind TemplateTemplateParm");2204 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind TemplateTemplateParm");
2202 return ErrorUnexpected;2205 return ErrorUnexpected;
2203 case Decl::Enum:2206 case Decl::Enum:
2204 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Enum");2207 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Enum");
2205 return ErrorUnexpected;2208 return ErrorUnexpected;
2206 case Decl::Record:2209 case Decl::Record:
2207 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Record");2210 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Record");
2208 return ErrorUnexpected;2211 return ErrorUnexpected;
2209 case Decl::CXXRecord:2212 case Decl::CXXRecord:
2210 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind CXXRecord");2213 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind CXXRecord");
2211 return ErrorUnexpected;2214 return ErrorUnexpected;
2212 case Decl::ClassTemplateSpecialization:2215 case Decl::ClassTemplateSpecialization:
2213 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ClassTemplateSpecialization");2216 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ClassTemplateSpecialization");
2214 return ErrorUnexpected;2217 return ErrorUnexpected;
2215 case Decl::ClassTemplatePartialSpecialization:2218 case Decl::ClassTemplatePartialSpecialization:
2216 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ClassTemplatePartialSpecialization");2219 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ClassTemplatePartialSpecialization");
2217 return ErrorUnexpected;2220 return ErrorUnexpected;
2218 case Decl::TemplateTypeParm:2221 case Decl::TemplateTypeParm:
2219 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind TemplateTypeParm");2222 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind TemplateTypeParm");
2220 return ErrorUnexpected;2223 return ErrorUnexpected;
2221 case Decl::ObjCTypeParam:2224 case Decl::ObjCTypeParam:
2222 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCTypeParam");2225 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCTypeParam");
2223 return ErrorUnexpected;2226 return ErrorUnexpected;
2224 case Decl::TypeAlias:2227 case Decl::TypeAlias:
2225 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind TypeAlias");2228 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind TypeAlias");
2226 return ErrorUnexpected;2229 return ErrorUnexpected;
2227 case Decl::Typedef:2230 case Decl::Typedef:
2228 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Typedef");2231 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Typedef");
2229 return ErrorUnexpected;2232 return ErrorUnexpected;
2230 case Decl::UnresolvedUsingTypename:2233 case Decl::UnresolvedUsingTypename:
2231 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind UnresolvedUsingTypename");2234 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind UnresolvedUsingTypename");
2232 return ErrorUnexpected;2235 return ErrorUnexpected;
2233 case Decl::Using:2236 case Decl::Using:
2234 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Using");2237 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Using");
2235 return ErrorUnexpected;2238 return ErrorUnexpected;
2236 case Decl::UsingDirective:2239 case Decl::UsingDirective:
2237 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind UsingDirective");2240 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind UsingDirective");
2238 return ErrorUnexpected;2241 return ErrorUnexpected;
2239 case Decl::UsingPack:2242 case Decl::UsingPack:
2240 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind UsingPack");2243 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind UsingPack");
2241 return ErrorUnexpected;2244 return ErrorUnexpected;
2242 case Decl::UsingShadow:2245 case Decl::UsingShadow:
2243 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind UsingShadow");2246 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind UsingShadow");
2244 return ErrorUnexpected;2247 return ErrorUnexpected;
2245 case Decl::ConstructorUsingShadow:2248 case Decl::ConstructorUsingShadow:
2246 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ConstructorUsingShadow");2249 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ConstructorUsingShadow");
2247 return ErrorUnexpected;2250 return ErrorUnexpected;
2248 case Decl::Binding:2251 case Decl::Binding:
2249 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Binding");2252 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Binding");
2250 return ErrorUnexpected;2253 return ErrorUnexpected;
2251 case Decl::Field:2254 case Decl::Field:
2252 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Field");2255 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Field");
2253 return ErrorUnexpected;2256 return ErrorUnexpected;
2254 case Decl::ObjCAtDefsField:2257 case Decl::ObjCAtDefsField:
2255 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCAtDefsField");2258 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCAtDefsField");
2256 return ErrorUnexpected;2259 return ErrorUnexpected;
2257 case Decl::ObjCIvar:2260 case Decl::ObjCIvar:
2258 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCIvar");2261 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCIvar");
2259 return ErrorUnexpected;2262 return ErrorUnexpected;
2260 case Decl::Function:2263 case Decl::Function:
2261 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Function");2264 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Function");
2262 return ErrorUnexpected;2265 return ErrorUnexpected;
2263 case Decl::CXXDeductionGuide:2266 case Decl::CXXDeductionGuide:
2264 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind CXXDeductionGuide");2267 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind CXXDeductionGuide");
2265 return ErrorUnexpected;2268 return ErrorUnexpected;
2266 case Decl::CXXMethod:2269 case Decl::CXXMethod:
2267 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind CXXMethod");2270 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind CXXMethod");
2268 return ErrorUnexpected;2271 return ErrorUnexpected;
2269 case Decl::CXXConstructor:2272 case Decl::CXXConstructor:
2270 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind CXXConstructor");2273 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind CXXConstructor");
2271 return ErrorUnexpected;2274 return ErrorUnexpected;
2272 case Decl::CXXConversion:2275 case Decl::CXXConversion:
2273 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind CXXConversion");2276 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind CXXConversion");
2274 return ErrorUnexpected;2277 return ErrorUnexpected;
2275 case Decl::CXXDestructor:2278 case Decl::CXXDestructor:
2276 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind CXXDestructor");2279 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind CXXDestructor");
2277 return ErrorUnexpected;2280 return ErrorUnexpected;
2278 case Decl::MSProperty:2281 case Decl::MSProperty:
2279 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind MSProperty");2282 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind MSProperty");
2280 return ErrorUnexpected;2283 return ErrorUnexpected;
2281 case Decl::NonTypeTemplateParm:2284 case Decl::NonTypeTemplateParm:
2282 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind NonTypeTemplateParm");2285 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind NonTypeTemplateParm");
2283 return ErrorUnexpected;2286 return ErrorUnexpected;
2284 case Decl::Decomposition:2287 case Decl::Decomposition:
2285 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind Decomposition");2288 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind Decomposition");
2286 return ErrorUnexpected;2289 return ErrorUnexpected;
2287 case Decl::ImplicitParam:2290 case Decl::ImplicitParam:
2288 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ImplicitParam");2291 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ImplicitParam");
2289 return ErrorUnexpected;2292 return ErrorUnexpected;
2290 case Decl::OMPCapturedExpr:2293 case Decl::OMPCapturedExpr:
2291 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind OMPCapturedExpr");2294 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind OMPCapturedExpr");
2292 return ErrorUnexpected;2295 return ErrorUnexpected;
2293 case Decl::ParmVar:2296 case Decl::ParmVar:
2294 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ParmVar");2297 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ParmVar");
2295 return ErrorUnexpected;2298 return ErrorUnexpected;
2296 case Decl::VarTemplateSpecialization:2299 case Decl::VarTemplateSpecialization:
2297 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind VarTemplateSpecialization");2300 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind VarTemplateSpecialization");
2298 return ErrorUnexpected;2301 return ErrorUnexpected;
2299 case Decl::VarTemplatePartialSpecialization:2302 case Decl::VarTemplatePartialSpecialization:
2300 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind VarTemplatePartialSpecialization");2303 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind VarTemplatePartialSpecialization");
2301 return ErrorUnexpected;2304 return ErrorUnexpected;
2302 case Decl::EnumConstant:2305 case Decl::EnumConstant:
2303 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind EnumConstant");2306 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind EnumConstant");
2304 return ErrorUnexpected;2307 return ErrorUnexpected;
2305 case Decl::IndirectField:2308 case Decl::IndirectField:
2306 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind IndirectField");2309 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind IndirectField");
2307 return ErrorUnexpected;2310 return ErrorUnexpected;
2308 case Decl::OMPDeclareReduction:2311 case Decl::OMPDeclareReduction:
2309 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind OMPDeclareReduction");2312 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind OMPDeclareReduction");
2310 return ErrorUnexpected;2313 return ErrorUnexpected;
2311 case Decl::UnresolvedUsingValue:2314 case Decl::UnresolvedUsingValue:
2312 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind UnresolvedUsingValue");2315 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind UnresolvedUsingValue");
2313 return ErrorUnexpected;2316 return ErrorUnexpected;
2314 case Decl::OMPThreadPrivate:2317 case Decl::OMPThreadPrivate:
2315 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind OMPThreadPrivate");2318 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind OMPThreadPrivate");
2316 return ErrorUnexpected;2319 return ErrorUnexpected;
2317 case Decl::ObjCPropertyImpl:2320 case Decl::ObjCPropertyImpl:
2318 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind ObjCPropertyImpl");2321 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind ObjCPropertyImpl");
2319 return ErrorUnexpected;2322 return ErrorUnexpected;
2320 case Decl::PragmaComment:2323 case Decl::PragmaComment:
2321 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind PragmaComment");2324 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind PragmaComment");
2322 return ErrorUnexpected;2325 return ErrorUnexpected;
2323 case Decl::PragmaDetectMismatch:2326 case Decl::PragmaDetectMismatch:
2324 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind PragmaDetectMismatch");2327 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind PragmaDetectMismatch");
2325 return ErrorUnexpected;2328 return ErrorUnexpected;
2326 case Decl::StaticAssert:2329 case Decl::StaticAssert:
2327 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind StaticAssert");2330 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind StaticAssert");
2328 return ErrorUnexpected;2331 return ErrorUnexpected;
2329 case Decl::TranslationUnit:2332 case Decl::TranslationUnit:
2330 emit_warning(c, stmt->getLocStart(), "TODO handle decl kind TranslationUnit");2333 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind TranslationUnit");
2334 return ErrorUnexpected;
2335 case Decl::OMPRequires:
2336 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind OMPRequires");
2331 return ErrorUnexpected;2337 return ErrorUnexpected;
2332 }2338 }
2333 zig_unreachable();2339 zig_unreachable();
...@@ -2535,7 +2541,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *...@@ -2535,7 +2541,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
2535 const ElaboratedType *elaborated_ty = static_cast<const ElaboratedType*>(ty);2541 const ElaboratedType *elaborated_ty = static_cast<const ElaboratedType*>(ty);
2536 switch (elaborated_ty->getKeyword()) {2542 switch (elaborated_ty->getKeyword()) {
2537 case ETK_Enum: {2543 case ETK_Enum: {
2538 AstNode *enum_type = trans_qual_type(c, elaborated_ty->getNamedType(), expr->getLocStart());2544 AstNode *enum_type = trans_qual_type(c, elaborated_ty->getNamedType(), expr->getBeginLoc());
2539 return to_enum_zero_cmp(c, res, enum_type);2545 return to_enum_zero_cmp(c, res, enum_type);
2540 }2546 }
2541 case ETK_Struct:2547 case ETK_Struct:
...@@ -2719,13 +2725,13 @@ static AstNode *trans_c_style_cast_expr(Context *c, ResultUsed result_used, Tran...@@ -2719,13 +2725,13 @@ static AstNode *trans_c_style_cast_expr(Context *c, ResultUsed result_used, Tran
2719 if (sub_expr_node == nullptr)2725 if (sub_expr_node == nullptr)
2720 return nullptr;2726 return nullptr;
27212727
2722 return trans_c_cast(c, stmt->getLocStart(), stmt->getType(), stmt->getSubExpr()->getType(), sub_expr_node);2728 return trans_c_cast(c, stmt->getBeginLoc(), stmt->getType(), stmt->getSubExpr()->getType(), sub_expr_node);
2723}2729}
27242730
2725static AstNode *trans_unary_expr_or_type_trait_expr(Context *c, TransScope *scope,2731static AstNode *trans_unary_expr_or_type_trait_expr(Context *c, TransScope *scope,
2726 const UnaryExprOrTypeTraitExpr *stmt)2732 const UnaryExprOrTypeTraitExpr *stmt)
2727{2733{
2728 AstNode *type_node = trans_qual_type(c, stmt->getTypeOfArgument(), stmt->getLocStart());2734 AstNode *type_node = trans_qual_type(c, stmt->getTypeOfArgument(), stmt->getBeginLoc());
2729 if (type_node == nullptr)2735 if (type_node == nullptr)
2730 return nullptr;2736 return nullptr;
27312737
...@@ -2932,7 +2938,7 @@ static int trans_switch_case(Context *c, TransScope *parent_scope, const CaseStm...@@ -2932,7 +2938,7 @@ static int trans_switch_case(Context *c, TransScope *parent_scope, const CaseStm
2932 *out_node = nullptr;2938 *out_node = nullptr;
29332939
2934 if (stmt->getRHS() != nullptr) {2940 if (stmt->getRHS() != nullptr) {
2935 emit_warning(c, stmt->getLocStart(), "TODO support GNU switch case a ... b extension");2941 emit_warning(c, stmt->getBeginLoc(), "TODO support GNU switch case a ... b extension");
2936 return ErrorUnexpected;2942 return ErrorUnexpected;
2937 }2943 }
29382944
...@@ -3015,13 +3021,13 @@ static AstNode *trans_string_literal(Context *c, TransScope *scope, const String...@@ -3015,13 +3021,13 @@ static AstNode *trans_string_literal(Context *c, TransScope *scope, const String
3015 case StringLiteral::UTF8:3021 case StringLiteral::UTF8:
3016 return trans_create_node_str_lit_c(c, string_ref_to_buf(stmt->getString()));3022 return trans_create_node_str_lit_c(c, string_ref_to_buf(stmt->getString()));
3017 case StringLiteral::UTF16:3023 case StringLiteral::UTF16:
3018 emit_warning(c, stmt->getLocStart(), "TODO support UTF16 string literals");3024 emit_warning(c, stmt->getBeginLoc(), "TODO support UTF16 string literals");
3019 return nullptr;3025 return nullptr;
3020 case StringLiteral::UTF32:3026 case StringLiteral::UTF32:
3021 emit_warning(c, stmt->getLocStart(), "TODO support UTF32 string literals");3027 emit_warning(c, stmt->getBeginLoc(), "TODO support UTF32 string literals");
3022 return nullptr;3028 return nullptr;
3023 case StringLiteral::Wide:3029 case StringLiteral::Wide:
3024 emit_warning(c, stmt->getLocStart(), "TODO support wide string literals");3030 emit_warning(c, stmt->getBeginLoc(), "TODO support wide string literals");
3025 return nullptr;3031 return nullptr;
3026 }3032 }
3027 zig_unreachable();3033 zig_unreachable();
...@@ -3151,511 +3157,514 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const Stmt *stmt,...@@ -3151,511 +3157,514 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const Stmt *stmt,
3151 case Stmt::DefaultStmtClass:3157 case Stmt::DefaultStmtClass:
3152 return trans_switch_default(c, scope, (const DefaultStmt *)stmt, out_node, out_child_scope);3158 return trans_switch_default(c, scope, (const DefaultStmt *)stmt, out_node, out_child_scope);
3153 case Stmt::NoStmtClass:3159 case Stmt::NoStmtClass:
3154 emit_warning(c, stmt->getLocStart(), "TODO handle C NoStmtClass");3160 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NoStmtClass");
3155 return ErrorUnexpected;3161 return ErrorUnexpected;
3156 case Stmt::GCCAsmStmtClass:3162 case Stmt::GCCAsmStmtClass:
3157 emit_warning(c, stmt->getLocStart(), "TODO handle C GCCAsmStmtClass");3163 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GCCAsmStmtClass");
3158 return ErrorUnexpected;3164 return ErrorUnexpected;
3159 case Stmt::MSAsmStmtClass:3165 case Stmt::MSAsmStmtClass:
3160 emit_warning(c, stmt->getLocStart(), "TODO handle C MSAsmStmtClass");3166 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSAsmStmtClass");
3161 return ErrorUnexpected;3167 return ErrorUnexpected;
3162 case Stmt::AttributedStmtClass:3168 case Stmt::AttributedStmtClass:
3163 emit_warning(c, stmt->getLocStart(), "TODO handle C AttributedStmtClass");3169 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AttributedStmtClass");
3164 return ErrorUnexpected;3170 return ErrorUnexpected;
3165 case Stmt::CXXCatchStmtClass:3171 case Stmt::CXXCatchStmtClass:
3166 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXCatchStmtClass");3172 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXCatchStmtClass");
3167 return ErrorUnexpected;3173 return ErrorUnexpected;
3168 case Stmt::CXXForRangeStmtClass:3174 case Stmt::CXXForRangeStmtClass:
3169 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXForRangeStmtClass");3175 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXForRangeStmtClass");
3170 return ErrorUnexpected;3176 return ErrorUnexpected;
3171 case Stmt::CXXTryStmtClass:3177 case Stmt::CXXTryStmtClass:
3172 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXTryStmtClass");3178 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXTryStmtClass");
3173 return ErrorUnexpected;3179 return ErrorUnexpected;
3174 case Stmt::CapturedStmtClass:3180 case Stmt::CapturedStmtClass:
3175 emit_warning(c, stmt->getLocStart(), "TODO handle C CapturedStmtClass");3181 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CapturedStmtClass");
3176 return ErrorUnexpected;3182 return ErrorUnexpected;
3177 case Stmt::CoreturnStmtClass:3183 case Stmt::CoreturnStmtClass:
3178 emit_warning(c, stmt->getLocStart(), "TODO handle C CoreturnStmtClass");3184 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoreturnStmtClass");
3179 return ErrorUnexpected;3185 return ErrorUnexpected;
3180 case Stmt::CoroutineBodyStmtClass:3186 case Stmt::CoroutineBodyStmtClass:
3181 emit_warning(c, stmt->getLocStart(), "TODO handle C CoroutineBodyStmtClass");3187 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoroutineBodyStmtClass");
3182 return ErrorUnexpected;3188 return ErrorUnexpected;
3183 case Stmt::BinaryConditionalOperatorClass:3189 case Stmt::BinaryConditionalOperatorClass:
3184 emit_warning(c, stmt->getLocStart(), "TODO handle C BinaryConditionalOperatorClass");3190 emit_warning(c, stmt->getBeginLoc(), "TODO handle C BinaryConditionalOperatorClass");
3185 return ErrorUnexpected;3191 return ErrorUnexpected;
3186 case Stmt::AddrLabelExprClass:3192 case Stmt::AddrLabelExprClass:
3187 emit_warning(c, stmt->getLocStart(), "TODO handle C AddrLabelExprClass");3193 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AddrLabelExprClass");
3188 return ErrorUnexpected;3194 return ErrorUnexpected;
3189 case Stmt::ArrayInitIndexExprClass:3195 case Stmt::ArrayInitIndexExprClass:
3190 emit_warning(c, stmt->getLocStart(), "TODO handle C ArrayInitIndexExprClass");3196 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ArrayInitIndexExprClass");
3191 return ErrorUnexpected;3197 return ErrorUnexpected;
3192 case Stmt::ArrayInitLoopExprClass:3198 case Stmt::ArrayInitLoopExprClass:
3193 emit_warning(c, stmt->getLocStart(), "TODO handle C ArrayInitLoopExprClass");3199 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ArrayInitLoopExprClass");
3194 return ErrorUnexpected;3200 return ErrorUnexpected;
3195 case Stmt::ArrayTypeTraitExprClass:3201 case Stmt::ArrayTypeTraitExprClass:
3196 emit_warning(c, stmt->getLocStart(), "TODO handle C ArrayTypeTraitExprClass");3202 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ArrayTypeTraitExprClass");
3197 return ErrorUnexpected;3203 return ErrorUnexpected;
3198 case Stmt::AsTypeExprClass:3204 case Stmt::AsTypeExprClass:
3199 emit_warning(c, stmt->getLocStart(), "TODO handle C AsTypeExprClass");3205 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AsTypeExprClass");
3200 return ErrorUnexpected;3206 return ErrorUnexpected;
3201 case Stmt::AtomicExprClass:3207 case Stmt::AtomicExprClass:
3202 emit_warning(c, stmt->getLocStart(), "TODO handle C AtomicExprClass");3208 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AtomicExprClass");
3203 return ErrorUnexpected;3209 return ErrorUnexpected;
3204 case Stmt::BlockExprClass:3210 case Stmt::BlockExprClass:
3205 emit_warning(c, stmt->getLocStart(), "TODO handle C BlockExprClass");3211 emit_warning(c, stmt->getBeginLoc(), "TODO handle C BlockExprClass");
3206 return ErrorUnexpected;3212 return ErrorUnexpected;
3207 case Stmt::CXXBindTemporaryExprClass:3213 case Stmt::CXXBindTemporaryExprClass:
3208 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXBindTemporaryExprClass");3214 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXBindTemporaryExprClass");
3209 return ErrorUnexpected;3215 return ErrorUnexpected;
3210 case Stmt::CXXBoolLiteralExprClass:3216 case Stmt::CXXBoolLiteralExprClass:
3211 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXBoolLiteralExprClass");3217 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXBoolLiteralExprClass");
3212 return ErrorUnexpected;3218 return ErrorUnexpected;
3213 case Stmt::CXXConstructExprClass:3219 case Stmt::CXXConstructExprClass:
3214 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXConstructExprClass");3220 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXConstructExprClass");
3215 return ErrorUnexpected;3221 return ErrorUnexpected;
3216 case Stmt::CXXTemporaryObjectExprClass:3222 case Stmt::CXXTemporaryObjectExprClass:
3217 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXTemporaryObjectExprClass");3223 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXTemporaryObjectExprClass");
3218 return ErrorUnexpected;3224 return ErrorUnexpected;
3219 case Stmt::CXXDefaultArgExprClass:3225 case Stmt::CXXDefaultArgExprClass:
3220 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXDefaultArgExprClass");3226 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDefaultArgExprClass");
3221 return ErrorUnexpected;3227 return ErrorUnexpected;
3222 case Stmt::CXXDefaultInitExprClass:3228 case Stmt::CXXDefaultInitExprClass:
3223 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXDefaultInitExprClass");3229 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDefaultInitExprClass");
3224 return ErrorUnexpected;3230 return ErrorUnexpected;
3225 case Stmt::CXXDeleteExprClass:3231 case Stmt::CXXDeleteExprClass:
3226 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXDeleteExprClass");3232 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDeleteExprClass");
3227 return ErrorUnexpected;3233 return ErrorUnexpected;
3228 case Stmt::CXXDependentScopeMemberExprClass:3234 case Stmt::CXXDependentScopeMemberExprClass:
3229 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXDependentScopeMemberExprClass");3235 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDependentScopeMemberExprClass");
3230 return ErrorUnexpected;3236 return ErrorUnexpected;
3231 case Stmt::CXXFoldExprClass:3237 case Stmt::CXXFoldExprClass:
3232 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXFoldExprClass");3238 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXFoldExprClass");
3233 return ErrorUnexpected;3239 return ErrorUnexpected;
3234 case Stmt::CXXInheritedCtorInitExprClass:3240 case Stmt::CXXInheritedCtorInitExprClass:
3235 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXInheritedCtorInitExprClass");3241 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXInheritedCtorInitExprClass");
3236 return ErrorUnexpected;3242 return ErrorUnexpected;
3237 case Stmt::CXXNewExprClass:3243 case Stmt::CXXNewExprClass:
3238 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXNewExprClass");3244 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXNewExprClass");
3239 return ErrorUnexpected;3245 return ErrorUnexpected;
3240 case Stmt::CXXNoexceptExprClass:3246 case Stmt::CXXNoexceptExprClass:
3241 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXNoexceptExprClass");3247 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXNoexceptExprClass");
3242 return ErrorUnexpected;3248 return ErrorUnexpected;
3243 case Stmt::CXXNullPtrLiteralExprClass:3249 case Stmt::CXXNullPtrLiteralExprClass:
3244 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXNullPtrLiteralExprClass");3250 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXNullPtrLiteralExprClass");
3245 return ErrorUnexpected;3251 return ErrorUnexpected;
3246 case Stmt::CXXPseudoDestructorExprClass:3252 case Stmt::CXXPseudoDestructorExprClass:
3247 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXPseudoDestructorExprClass");3253 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXPseudoDestructorExprClass");
3248 return ErrorUnexpected;3254 return ErrorUnexpected;
3249 case Stmt::CXXScalarValueInitExprClass:3255 case Stmt::CXXScalarValueInitExprClass:
3250 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXScalarValueInitExprClass");3256 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXScalarValueInitExprClass");
3251 return ErrorUnexpected;3257 return ErrorUnexpected;
3252 case Stmt::CXXStdInitializerListExprClass:3258 case Stmt::CXXStdInitializerListExprClass:
3253 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXStdInitializerListExprClass");3259 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXStdInitializerListExprClass");
3254 return ErrorUnexpected;3260 return ErrorUnexpected;
3255 case Stmt::CXXThisExprClass:3261 case Stmt::CXXThisExprClass:
3256 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXThisExprClass");3262 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXThisExprClass");
3257 return ErrorUnexpected;3263 return ErrorUnexpected;
3258 case Stmt::CXXThrowExprClass:3264 case Stmt::CXXThrowExprClass:
3259 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXThrowExprClass");3265 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXThrowExprClass");
3260 return ErrorUnexpected;3266 return ErrorUnexpected;
3261 case Stmt::CXXTypeidExprClass:3267 case Stmt::CXXTypeidExprClass:
3262 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXTypeidExprClass");3268 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXTypeidExprClass");
3263 return ErrorUnexpected;3269 return ErrorUnexpected;
3264 case Stmt::CXXUnresolvedConstructExprClass:3270 case Stmt::CXXUnresolvedConstructExprClass:
3265 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXUnresolvedConstructExprClass");3271 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXUnresolvedConstructExprClass");
3266 return ErrorUnexpected;3272 return ErrorUnexpected;
3267 case Stmt::CXXUuidofExprClass:3273 case Stmt::CXXUuidofExprClass:
3268 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXUuidofExprClass");3274 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXUuidofExprClass");
3269 return ErrorUnexpected;3275 return ErrorUnexpected;
3270 case Stmt::CUDAKernelCallExprClass:3276 case Stmt::CUDAKernelCallExprClass:
3271 emit_warning(c, stmt->getLocStart(), "TODO handle C CUDAKernelCallExprClass");3277 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CUDAKernelCallExprClass");
3272 return ErrorUnexpected;3278 return ErrorUnexpected;
3273 case Stmt::CXXMemberCallExprClass:3279 case Stmt::CXXMemberCallExprClass:
3274 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXMemberCallExprClass");3280 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXMemberCallExprClass");
3275 return ErrorUnexpected;3281 return ErrorUnexpected;
3276 case Stmt::CXXOperatorCallExprClass:3282 case Stmt::CXXOperatorCallExprClass:
3277 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXOperatorCallExprClass");3283 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXOperatorCallExprClass");
3278 return ErrorUnexpected;3284 return ErrorUnexpected;
3279 case Stmt::UserDefinedLiteralClass:3285 case Stmt::UserDefinedLiteralClass:
3280 emit_warning(c, stmt->getLocStart(), "TODO handle C UserDefinedLiteralClass");3286 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UserDefinedLiteralClass");
3281 return ErrorUnexpected;3287 return ErrorUnexpected;
3282 case Stmt::CXXFunctionalCastExprClass:3288 case Stmt::CXXFunctionalCastExprClass:
3283 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXFunctionalCastExprClass");3289 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXFunctionalCastExprClass");
3284 return ErrorUnexpected;3290 return ErrorUnexpected;
3285 case Stmt::CXXConstCastExprClass:3291 case Stmt::CXXConstCastExprClass:
3286 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXConstCastExprClass");3292 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXConstCastExprClass");
3287 return ErrorUnexpected;3293 return ErrorUnexpected;
3288 case Stmt::CXXDynamicCastExprClass:3294 case Stmt::CXXDynamicCastExprClass:
3289 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXDynamicCastExprClass");3295 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDynamicCastExprClass");
3290 return ErrorUnexpected;3296 return ErrorUnexpected;
3291 case Stmt::CXXReinterpretCastExprClass:3297 case Stmt::CXXReinterpretCastExprClass:
3292 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXReinterpretCastExprClass");3298 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXReinterpretCastExprClass");
3293 return ErrorUnexpected;3299 return ErrorUnexpected;
3294 case Stmt::CXXStaticCastExprClass:3300 case Stmt::CXXStaticCastExprClass:
3295 emit_warning(c, stmt->getLocStart(), "TODO handle C CXXStaticCastExprClass");3301 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXStaticCastExprClass");
3296 return ErrorUnexpected;3302 return ErrorUnexpected;
3297 case Stmt::ObjCBridgedCastExprClass:3303 case Stmt::ObjCBridgedCastExprClass:
3298 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCBridgedCastExprClass");3304 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCBridgedCastExprClass");
3299 return ErrorUnexpected;3305 return ErrorUnexpected;
3300 case Stmt::CharacterLiteralClass:3306 case Stmt::CharacterLiteralClass:
3301 emit_warning(c, stmt->getLocStart(), "TODO handle C CharacterLiteralClass");3307 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CharacterLiteralClass");
3302 return ErrorUnexpected;3308 return ErrorUnexpected;
3303 case Stmt::ChooseExprClass:3309 case Stmt::ChooseExprClass:
3304 emit_warning(c, stmt->getLocStart(), "TODO handle C ChooseExprClass");3310 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ChooseExprClass");
3305 return ErrorUnexpected;3311 return ErrorUnexpected;
3306 case Stmt::CompoundLiteralExprClass:3312 case Stmt::CompoundLiteralExprClass:
3307 emit_warning(c, stmt->getLocStart(), "TODO handle C CompoundLiteralExprClass");3313 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CompoundLiteralExprClass");
3308 return ErrorUnexpected;3314 return ErrorUnexpected;
3309 case Stmt::ConvertVectorExprClass:3315 case Stmt::ConvertVectorExprClass:
3310 emit_warning(c, stmt->getLocStart(), "TODO handle C ConvertVectorExprClass");3316 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ConvertVectorExprClass");
3311 return ErrorUnexpected;3317 return ErrorUnexpected;
3312 case Stmt::CoawaitExprClass:3318 case Stmt::CoawaitExprClass:
3313 emit_warning(c, stmt->getLocStart(), "TODO handle C CoawaitExprClass");3319 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoawaitExprClass");
3314 return ErrorUnexpected;3320 return ErrorUnexpected;
3315 case Stmt::CoyieldExprClass:3321 case Stmt::CoyieldExprClass:
3316 emit_warning(c, stmt->getLocStart(), "TODO handle C CoyieldExprClass");3322 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoyieldExprClass");
3317 return ErrorUnexpected;3323 return ErrorUnexpected;
3318 case Stmt::DependentCoawaitExprClass:3324 case Stmt::DependentCoawaitExprClass:
3319 emit_warning(c, stmt->getLocStart(), "TODO handle C DependentCoawaitExprClass");3325 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DependentCoawaitExprClass");
3320 return ErrorUnexpected;3326 return ErrorUnexpected;
3321 case Stmt::DependentScopeDeclRefExprClass:3327 case Stmt::DependentScopeDeclRefExprClass:
3322 emit_warning(c, stmt->getLocStart(), "TODO handle C DependentScopeDeclRefExprClass");3328 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DependentScopeDeclRefExprClass");
3323 return ErrorUnexpected;3329 return ErrorUnexpected;
3324 case Stmt::DesignatedInitExprClass:3330 case Stmt::DesignatedInitExprClass:
3325 emit_warning(c, stmt->getLocStart(), "TODO handle C DesignatedInitExprClass");3331 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DesignatedInitExprClass");
3326 return ErrorUnexpected;3332 return ErrorUnexpected;
3327 case Stmt::DesignatedInitUpdateExprClass:3333 case Stmt::DesignatedInitUpdateExprClass:
3328 emit_warning(c, stmt->getLocStart(), "TODO handle C DesignatedInitUpdateExprClass");3334 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DesignatedInitUpdateExprClass");
3329 return ErrorUnexpected;3335 return ErrorUnexpected;
3330 case Stmt::ExprWithCleanupsClass:3336 case Stmt::ExprWithCleanupsClass:
3331 emit_warning(c, stmt->getLocStart(), "TODO handle C ExprWithCleanupsClass");3337 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExprWithCleanupsClass");
3332 return ErrorUnexpected;3338 return ErrorUnexpected;
3333 case Stmt::ExpressionTraitExprClass:3339 case Stmt::ExpressionTraitExprClass:
3334 emit_warning(c, stmt->getLocStart(), "TODO handle C ExpressionTraitExprClass");3340 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExpressionTraitExprClass");
3335 return ErrorUnexpected;3341 return ErrorUnexpected;
3336 case Stmt::ExtVectorElementExprClass:3342 case Stmt::ExtVectorElementExprClass:
3337 emit_warning(c, stmt->getLocStart(), "TODO handle C ExtVectorElementExprClass");3343 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExtVectorElementExprClass");
3338 return ErrorUnexpected;3344 return ErrorUnexpected;
3339 case Stmt::FloatingLiteralClass:3345 case Stmt::FloatingLiteralClass:
3340 emit_warning(c, stmt->getLocStart(), "TODO handle C FloatingLiteralClass");3346 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FloatingLiteralClass");
3341 return ErrorUnexpected;3347 return ErrorUnexpected;
3342 case Stmt::FunctionParmPackExprClass:3348 case Stmt::FunctionParmPackExprClass:
3343 emit_warning(c, stmt->getLocStart(), "TODO handle C FunctionParmPackExprClass");3349 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FunctionParmPackExprClass");
3344 return ErrorUnexpected;3350 return ErrorUnexpected;
3345 case Stmt::GNUNullExprClass:3351 case Stmt::GNUNullExprClass:
3346 emit_warning(c, stmt->getLocStart(), "TODO handle C GNUNullExprClass");3352 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GNUNullExprClass");
3347 return ErrorUnexpected;3353 return ErrorUnexpected;
3348 case Stmt::GenericSelectionExprClass:3354 case Stmt::GenericSelectionExprClass:
3349 emit_warning(c, stmt->getLocStart(), "TODO handle C GenericSelectionExprClass");3355 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GenericSelectionExprClass");
3350 return ErrorUnexpected;3356 return ErrorUnexpected;
3351 case Stmt::ImaginaryLiteralClass:3357 case Stmt::ImaginaryLiteralClass:
3352 emit_warning(c, stmt->getLocStart(), "TODO handle C ImaginaryLiteralClass");3358 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ImaginaryLiteralClass");
3353 return ErrorUnexpected;3359 return ErrorUnexpected;
3354 case Stmt::ImplicitValueInitExprClass:3360 case Stmt::ImplicitValueInitExprClass:
3355 emit_warning(c, stmt->getLocStart(), "TODO handle C ImplicitValueInitExprClass");3361 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ImplicitValueInitExprClass");
3356 return ErrorUnexpected;3362 return ErrorUnexpected;
3357 case Stmt::InitListExprClass:3363 case Stmt::InitListExprClass:
3358 emit_warning(c, stmt->getLocStart(), "TODO handle C InitListExprClass");3364 emit_warning(c, stmt->getBeginLoc(), "TODO handle C InitListExprClass");
3359 return ErrorUnexpected;3365 return ErrorUnexpected;
3360 case Stmt::LambdaExprClass:3366 case Stmt::LambdaExprClass:
3361 emit_warning(c, stmt->getLocStart(), "TODO handle C LambdaExprClass");3367 emit_warning(c, stmt->getBeginLoc(), "TODO handle C LambdaExprClass");
3362 return ErrorUnexpected;3368 return ErrorUnexpected;
3363 case Stmt::MSPropertyRefExprClass:3369 case Stmt::MSPropertyRefExprClass:
3364 emit_warning(c, stmt->getLocStart(), "TODO handle C MSPropertyRefExprClass");3370 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSPropertyRefExprClass");
3365 return ErrorUnexpected;3371 return ErrorUnexpected;
3366 case Stmt::MSPropertySubscriptExprClass:3372 case Stmt::MSPropertySubscriptExprClass:
3367 emit_warning(c, stmt->getLocStart(), "TODO handle C MSPropertySubscriptExprClass");3373 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSPropertySubscriptExprClass");
3368 return ErrorUnexpected;3374 return ErrorUnexpected;
3369 case Stmt::MaterializeTemporaryExprClass:3375 case Stmt::MaterializeTemporaryExprClass:
3370 emit_warning(c, stmt->getLocStart(), "TODO handle C MaterializeTemporaryExprClass");3376 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MaterializeTemporaryExprClass");
3371 return ErrorUnexpected;3377 return ErrorUnexpected;
3372 case Stmt::NoInitExprClass:3378 case Stmt::NoInitExprClass:
3373 emit_warning(c, stmt->getLocStart(), "TODO handle C NoInitExprClass");3379 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NoInitExprClass");
3374 return ErrorUnexpected;3380 return ErrorUnexpected;
3375 case Stmt::OMPArraySectionExprClass:3381 case Stmt::OMPArraySectionExprClass:
3376 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPArraySectionExprClass");3382 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPArraySectionExprClass");
3377 return ErrorUnexpected;3383 return ErrorUnexpected;
3378 case Stmt::ObjCArrayLiteralClass:3384 case Stmt::ObjCArrayLiteralClass:
3379 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCArrayLiteralClass");3385 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCArrayLiteralClass");
3380 return ErrorUnexpected;3386 return ErrorUnexpected;
3381 case Stmt::ObjCAvailabilityCheckExprClass:3387 case Stmt::ObjCAvailabilityCheckExprClass:
3382 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAvailabilityCheckExprClass");3388 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAvailabilityCheckExprClass");
3383 return ErrorUnexpected;3389 return ErrorUnexpected;
3384 case Stmt::ObjCBoolLiteralExprClass:3390 case Stmt::ObjCBoolLiteralExprClass:
3385 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCBoolLiteralExprClass");3391 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCBoolLiteralExprClass");
3386 return ErrorUnexpected;3392 return ErrorUnexpected;
3387 case Stmt::ObjCBoxedExprClass:3393 case Stmt::ObjCBoxedExprClass:
3388 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCBoxedExprClass");3394 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCBoxedExprClass");
3389 return ErrorUnexpected;3395 return ErrorUnexpected;
3390 case Stmt::ObjCDictionaryLiteralClass:3396 case Stmt::ObjCDictionaryLiteralClass:
3391 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCDictionaryLiteralClass");3397 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCDictionaryLiteralClass");
3392 return ErrorUnexpected;3398 return ErrorUnexpected;
3393 case Stmt::ObjCEncodeExprClass:3399 case Stmt::ObjCEncodeExprClass:
3394 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCEncodeExprClass");3400 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCEncodeExprClass");
3395 return ErrorUnexpected;3401 return ErrorUnexpected;
3396 case Stmt::ObjCIndirectCopyRestoreExprClass:3402 case Stmt::ObjCIndirectCopyRestoreExprClass:
3397 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCIndirectCopyRestoreExprClass");3403 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIndirectCopyRestoreExprClass");
3398 return ErrorUnexpected;3404 return ErrorUnexpected;
3399 case Stmt::ObjCIsaExprClass:3405 case Stmt::ObjCIsaExprClass:
3400 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCIsaExprClass");3406 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIsaExprClass");
3401 return ErrorUnexpected;3407 return ErrorUnexpected;
3402 case Stmt::ObjCIvarRefExprClass:3408 case Stmt::ObjCIvarRefExprClass:
3403 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCIvarRefExprClass");3409 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIvarRefExprClass");
3404 return ErrorUnexpected;3410 return ErrorUnexpected;
3405 case Stmt::ObjCMessageExprClass:3411 case Stmt::ObjCMessageExprClass:
3406 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCMessageExprClass");3412 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCMessageExprClass");
3407 return ErrorUnexpected;3413 return ErrorUnexpected;
3408 case Stmt::ObjCPropertyRefExprClass:3414 case Stmt::ObjCPropertyRefExprClass:
3409 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCPropertyRefExprClass");3415 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCPropertyRefExprClass");
3410 return ErrorUnexpected;3416 return ErrorUnexpected;
3411 case Stmt::ObjCProtocolExprClass:3417 case Stmt::ObjCProtocolExprClass:
3412 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCProtocolExprClass");3418 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCProtocolExprClass");
3413 return ErrorUnexpected;3419 return ErrorUnexpected;
3414 case Stmt::ObjCSelectorExprClass:3420 case Stmt::ObjCSelectorExprClass:
3415 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCSelectorExprClass");3421 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCSelectorExprClass");
3416 return ErrorUnexpected;3422 return ErrorUnexpected;
3417 case Stmt::ObjCStringLiteralClass:3423 case Stmt::ObjCStringLiteralClass:
3418 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCStringLiteralClass");3424 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCStringLiteralClass");
3419 return ErrorUnexpected;3425 return ErrorUnexpected;
3420 case Stmt::ObjCSubscriptRefExprClass:3426 case Stmt::ObjCSubscriptRefExprClass:
3421 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCSubscriptRefExprClass");3427 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCSubscriptRefExprClass");
3422 return ErrorUnexpected;3428 return ErrorUnexpected;
3423 case Stmt::OffsetOfExprClass:3429 case Stmt::OffsetOfExprClass:
3424 emit_warning(c, stmt->getLocStart(), "TODO handle C OffsetOfExprClass");3430 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OffsetOfExprClass");
3425 return ErrorUnexpected;3431 return ErrorUnexpected;
3426 case Stmt::OpaqueValueExprClass:3432 case Stmt::OpaqueValueExprClass:
3427 emit_warning(c, stmt->getLocStart(), "TODO handle C OpaqueValueExprClass");3433 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OpaqueValueExprClass");
3428 return ErrorUnexpected;3434 return ErrorUnexpected;
3429 case Stmt::UnresolvedLookupExprClass:3435 case Stmt::UnresolvedLookupExprClass:
3430 emit_warning(c, stmt->getLocStart(), "TODO handle C UnresolvedLookupExprClass");3436 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UnresolvedLookupExprClass");
3431 return ErrorUnexpected;3437 return ErrorUnexpected;
3432 case Stmt::UnresolvedMemberExprClass:3438 case Stmt::UnresolvedMemberExprClass:
3433 emit_warning(c, stmt->getLocStart(), "TODO handle C UnresolvedMemberExprClass");3439 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UnresolvedMemberExprClass");
3434 return ErrorUnexpected;3440 return ErrorUnexpected;
3435 case Stmt::PackExpansionExprClass:3441 case Stmt::PackExpansionExprClass:
3436 emit_warning(c, stmt->getLocStart(), "TODO handle C PackExpansionExprClass");3442 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PackExpansionExprClass");
3437 return ErrorUnexpected;3443 return ErrorUnexpected;
3438 case Stmt::ParenListExprClass:3444 case Stmt::ParenListExprClass:
3439 emit_warning(c, stmt->getLocStart(), "TODO handle C ParenListExprClass");3445 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ParenListExprClass");
3440 return ErrorUnexpected;3446 return ErrorUnexpected;
3441 case Stmt::PredefinedExprClass:3447 case Stmt::PredefinedExprClass:
3442 emit_warning(c, stmt->getLocStart(), "TODO handle C PredefinedExprClass");3448 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PredefinedExprClass");
3443 return ErrorUnexpected;3449 return ErrorUnexpected;
3444 case Stmt::PseudoObjectExprClass:3450 case Stmt::PseudoObjectExprClass:
3445 emit_warning(c, stmt->getLocStart(), "TODO handle C PseudoObjectExprClass");3451 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PseudoObjectExprClass");
3446 return ErrorUnexpected;3452 return ErrorUnexpected;
3447 case Stmt::ShuffleVectorExprClass:3453 case Stmt::ShuffleVectorExprClass:
3448 emit_warning(c, stmt->getLocStart(), "TODO handle C ShuffleVectorExprClass");3454 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ShuffleVectorExprClass");
3449 return ErrorUnexpected;3455 return ErrorUnexpected;
3450 case Stmt::SizeOfPackExprClass:3456 case Stmt::SizeOfPackExprClass:
3451 emit_warning(c, stmt->getLocStart(), "TODO handle C SizeOfPackExprClass");3457 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SizeOfPackExprClass");
3452 return ErrorUnexpected;3458 return ErrorUnexpected;
3453 case Stmt::StmtExprClass:3459 case Stmt::StmtExprClass:
3454 emit_warning(c, stmt->getLocStart(), "TODO handle C StmtExprClass");3460 emit_warning(c, stmt->getBeginLoc(), "TODO handle C StmtExprClass");
3455 return ErrorUnexpected;3461 return ErrorUnexpected;
3456 case Stmt::SubstNonTypeTemplateParmExprClass:3462 case Stmt::SubstNonTypeTemplateParmExprClass:
3457 emit_warning(c, stmt->getLocStart(), "TODO handle C SubstNonTypeTemplateParmExprClass");3463 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SubstNonTypeTemplateParmExprClass");
3458 return ErrorUnexpected;3464 return ErrorUnexpected;
3459 case Stmt::SubstNonTypeTemplateParmPackExprClass:3465 case Stmt::SubstNonTypeTemplateParmPackExprClass:
3460 emit_warning(c, stmt->getLocStart(), "TODO handle C SubstNonTypeTemplateParmPackExprClass");3466 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SubstNonTypeTemplateParmPackExprClass");
3461 return ErrorUnexpected;3467 return ErrorUnexpected;
3462 case Stmt::TypeTraitExprClass:3468 case Stmt::TypeTraitExprClass:
3463 emit_warning(c, stmt->getLocStart(), "TODO handle C TypeTraitExprClass");3469 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TypeTraitExprClass");
3464 return ErrorUnexpected;3470 return ErrorUnexpected;
3465 case Stmt::TypoExprClass:3471 case Stmt::TypoExprClass:
3466 emit_warning(c, stmt->getLocStart(), "TODO handle C TypoExprClass");3472 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TypoExprClass");
3467 return ErrorUnexpected;3473 return ErrorUnexpected;
3468 case Stmt::VAArgExprClass:3474 case Stmt::VAArgExprClass:
3469 emit_warning(c, stmt->getLocStart(), "TODO handle C VAArgExprClass");3475 emit_warning(c, stmt->getBeginLoc(), "TODO handle C VAArgExprClass");
3470 return ErrorUnexpected;3476 return ErrorUnexpected;
3471 case Stmt::GotoStmtClass:3477 case Stmt::GotoStmtClass:
3472 emit_warning(c, stmt->getLocStart(), "TODO handle C GotoStmtClass");3478 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GotoStmtClass");
3473 return ErrorUnexpected;3479 return ErrorUnexpected;
3474 case Stmt::IndirectGotoStmtClass:3480 case Stmt::IndirectGotoStmtClass:
3475 emit_warning(c, stmt->getLocStart(), "TODO handle C IndirectGotoStmtClass");3481 emit_warning(c, stmt->getBeginLoc(), "TODO handle C IndirectGotoStmtClass");
3476 return ErrorUnexpected;3482 return ErrorUnexpected;
3477 case Stmt::LabelStmtClass:3483 case Stmt::LabelStmtClass:
3478 emit_warning(c, stmt->getLocStart(), "TODO handle C LabelStmtClass");3484 emit_warning(c, stmt->getBeginLoc(), "TODO handle C LabelStmtClass");
3479 return ErrorUnexpected;3485 return ErrorUnexpected;
3480 case Stmt::MSDependentExistsStmtClass:3486 case Stmt::MSDependentExistsStmtClass:
3481 emit_warning(c, stmt->getLocStart(), "TODO handle C MSDependentExistsStmtClass");3487 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSDependentExistsStmtClass");
3482 return ErrorUnexpected;3488 return ErrorUnexpected;
3483 case Stmt::OMPAtomicDirectiveClass:3489 case Stmt::OMPAtomicDirectiveClass:
3484 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPAtomicDirectiveClass");3490 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPAtomicDirectiveClass");
3485 return ErrorUnexpected;3491 return ErrorUnexpected;
3486 case Stmt::OMPBarrierDirectiveClass:3492 case Stmt::OMPBarrierDirectiveClass:
3487 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPBarrierDirectiveClass");3493 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPBarrierDirectiveClass");
3488 return ErrorUnexpected;3494 return ErrorUnexpected;
3489 case Stmt::OMPCancelDirectiveClass:3495 case Stmt::OMPCancelDirectiveClass:
3490 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPCancelDirectiveClass");3496 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCancelDirectiveClass");
3491 return ErrorUnexpected;3497 return ErrorUnexpected;
3492 case Stmt::OMPCancellationPointDirectiveClass:3498 case Stmt::OMPCancellationPointDirectiveClass:
3493 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPCancellationPointDirectiveClass");3499 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCancellationPointDirectiveClass");
3494 return ErrorUnexpected;3500 return ErrorUnexpected;
3495 case Stmt::OMPCriticalDirectiveClass:3501 case Stmt::OMPCriticalDirectiveClass:
3496 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPCriticalDirectiveClass");3502 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCriticalDirectiveClass");
3497 return ErrorUnexpected;3503 return ErrorUnexpected;
3498 case Stmt::OMPFlushDirectiveClass:3504 case Stmt::OMPFlushDirectiveClass:
3499 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPFlushDirectiveClass");3505 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPFlushDirectiveClass");
3500 return ErrorUnexpected;3506 return ErrorUnexpected;
3501 case Stmt::OMPDistributeDirectiveClass:3507 case Stmt::OMPDistributeDirectiveClass:
3502 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPDistributeDirectiveClass");3508 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeDirectiveClass");
3503 return ErrorUnexpected;3509 return ErrorUnexpected;
3504 case Stmt::OMPDistributeParallelForDirectiveClass:3510 case Stmt::OMPDistributeParallelForDirectiveClass:
3505 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPDistributeParallelForDirectiveClass");3511 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeParallelForDirectiveClass");
3506 return ErrorUnexpected;3512 return ErrorUnexpected;
3507 case Stmt::OMPDistributeParallelForSimdDirectiveClass:3513 case Stmt::OMPDistributeParallelForSimdDirectiveClass:
3508 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPDistributeParallelForSimdDirectiveClass");3514 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeParallelForSimdDirectiveClass");
3509 return ErrorUnexpected;3515 return ErrorUnexpected;
3510 case Stmt::OMPDistributeSimdDirectiveClass:3516 case Stmt::OMPDistributeSimdDirectiveClass:
3511 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPDistributeSimdDirectiveClass");3517 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeSimdDirectiveClass");
3512 return ErrorUnexpected;3518 return ErrorUnexpected;
3513 case Stmt::OMPForDirectiveClass:3519 case Stmt::OMPForDirectiveClass:
3514 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPForDirectiveClass");3520 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPForDirectiveClass");
3515 return ErrorUnexpected;3521 return ErrorUnexpected;
3516 case Stmt::OMPForSimdDirectiveClass:3522 case Stmt::OMPForSimdDirectiveClass:
3517 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPForSimdDirectiveClass");3523 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPForSimdDirectiveClass");
3518 return ErrorUnexpected;3524 return ErrorUnexpected;
3519 case Stmt::OMPParallelForDirectiveClass:3525 case Stmt::OMPParallelForDirectiveClass:
3520 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPParallelForDirectiveClass");3526 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelForDirectiveClass");
3521 return ErrorUnexpected;3527 return ErrorUnexpected;
3522 case Stmt::OMPParallelForSimdDirectiveClass:3528 case Stmt::OMPParallelForSimdDirectiveClass:
3523 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPParallelForSimdDirectiveClass");3529 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelForSimdDirectiveClass");
3524 return ErrorUnexpected;3530 return ErrorUnexpected;
3525 case Stmt::OMPSimdDirectiveClass:3531 case Stmt::OMPSimdDirectiveClass:
3526 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPSimdDirectiveClass");3532 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSimdDirectiveClass");
3527 return ErrorUnexpected;3533 return ErrorUnexpected;
3528 case Stmt::OMPTargetParallelForSimdDirectiveClass:3534 case Stmt::OMPTargetParallelForSimdDirectiveClass:
3529 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetParallelForSimdDirectiveClass");3535 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetParallelForSimdDirectiveClass");
3530 return ErrorUnexpected;3536 return ErrorUnexpected;
3531 case Stmt::OMPTargetSimdDirectiveClass:3537 case Stmt::OMPTargetSimdDirectiveClass:
3532 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetSimdDirectiveClass");3538 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetSimdDirectiveClass");
3533 return ErrorUnexpected;3539 return ErrorUnexpected;
3534 case Stmt::OMPTargetTeamsDistributeDirectiveClass:3540 case Stmt::OMPTargetTeamsDistributeDirectiveClass:
3535 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetTeamsDistributeDirectiveClass");3541 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeDirectiveClass");
3536 return ErrorUnexpected;3542 return ErrorUnexpected;
3537 case Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:3543 case Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
3538 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass");3544 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass");
3539 return ErrorUnexpected;3545 return ErrorUnexpected;
3540 case Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:3546 case Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
3541 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass");3547 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass");
3542 return ErrorUnexpected;3548 return ErrorUnexpected;
3543 case Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:3549 case Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
3544 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass");3550 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass");
3545 return ErrorUnexpected;3551 return ErrorUnexpected;
3546 case Stmt::OMPTaskLoopDirectiveClass:3552 case Stmt::OMPTaskLoopDirectiveClass:
3547 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTaskLoopDirectiveClass");3553 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskLoopDirectiveClass");
3548 return ErrorUnexpected;3554 return ErrorUnexpected;
3549 case Stmt::OMPTaskLoopSimdDirectiveClass:3555 case Stmt::OMPTaskLoopSimdDirectiveClass:
3550 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTaskLoopSimdDirectiveClass");3556 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskLoopSimdDirectiveClass");
3551 return ErrorUnexpected;3557 return ErrorUnexpected;
3552 case Stmt::OMPTeamsDistributeDirectiveClass:3558 case Stmt::OMPTeamsDistributeDirectiveClass:
3553 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTeamsDistributeDirectiveClass");3559 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeDirectiveClass");
3554 return ErrorUnexpected;3560 return ErrorUnexpected;
3555 case Stmt::OMPTeamsDistributeParallelForDirectiveClass:3561 case Stmt::OMPTeamsDistributeParallelForDirectiveClass:
3556 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass");3562 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass");
3557 return ErrorUnexpected;3563 return ErrorUnexpected;
3558 case Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:3564 case Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
3559 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass");3565 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass");
3560 return ErrorUnexpected;3566 return ErrorUnexpected;
3561 case Stmt::OMPTeamsDistributeSimdDirectiveClass:3567 case Stmt::OMPTeamsDistributeSimdDirectiveClass:
3562 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTeamsDistributeSimdDirectiveClass");3568 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeSimdDirectiveClass");
3563 return ErrorUnexpected;3569 return ErrorUnexpected;
3564 case Stmt::OMPMasterDirectiveClass:3570 case Stmt::OMPMasterDirectiveClass:
3565 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPMasterDirectiveClass");3571 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPMasterDirectiveClass");
3566 return ErrorUnexpected;3572 return ErrorUnexpected;
3567 case Stmt::OMPOrderedDirectiveClass:3573 case Stmt::OMPOrderedDirectiveClass:
3568 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPOrderedDirectiveClass");3574 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPOrderedDirectiveClass");
3569 return ErrorUnexpected;3575 return ErrorUnexpected;
3570 case Stmt::OMPParallelDirectiveClass:3576 case Stmt::OMPParallelDirectiveClass:
3571 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPParallelDirectiveClass");3577 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelDirectiveClass");
3572 return ErrorUnexpected;3578 return ErrorUnexpected;
3573 case Stmt::OMPParallelSectionsDirectiveClass:3579 case Stmt::OMPParallelSectionsDirectiveClass:
3574 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPParallelSectionsDirectiveClass");3580 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelSectionsDirectiveClass");
3575 return ErrorUnexpected;3581 return ErrorUnexpected;
3576 case Stmt::OMPSectionDirectiveClass:3582 case Stmt::OMPSectionDirectiveClass:
3577 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPSectionDirectiveClass");3583 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSectionDirectiveClass");
3578 return ErrorUnexpected;3584 return ErrorUnexpected;
3579 case Stmt::OMPSectionsDirectiveClass:3585 case Stmt::OMPSectionsDirectiveClass:
3580 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPSectionsDirectiveClass");3586 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSectionsDirectiveClass");
3581 return ErrorUnexpected;3587 return ErrorUnexpected;
3582 case Stmt::OMPSingleDirectiveClass:3588 case Stmt::OMPSingleDirectiveClass:
3583 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPSingleDirectiveClass");3589 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSingleDirectiveClass");
3584 return ErrorUnexpected;3590 return ErrorUnexpected;
3585 case Stmt::OMPTargetDataDirectiveClass:3591 case Stmt::OMPTargetDataDirectiveClass:
3586 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetDataDirectiveClass");3592 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetDataDirectiveClass");
3587 return ErrorUnexpected;3593 return ErrorUnexpected;
3588 case Stmt::OMPTargetDirectiveClass:3594 case Stmt::OMPTargetDirectiveClass:
3589 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetDirectiveClass");3595 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetDirectiveClass");
3590 return ErrorUnexpected;3596 return ErrorUnexpected;
3591 case Stmt::OMPTargetEnterDataDirectiveClass:3597 case Stmt::OMPTargetEnterDataDirectiveClass:
3592 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetEnterDataDirectiveClass");3598 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetEnterDataDirectiveClass");
3593 return ErrorUnexpected;3599 return ErrorUnexpected;
3594 case Stmt::OMPTargetExitDataDirectiveClass:3600 case Stmt::OMPTargetExitDataDirectiveClass:
3595 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetExitDataDirectiveClass");3601 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetExitDataDirectiveClass");
3596 return ErrorUnexpected;3602 return ErrorUnexpected;
3597 case Stmt::OMPTargetParallelDirectiveClass:3603 case Stmt::OMPTargetParallelDirectiveClass:
3598 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetParallelDirectiveClass");3604 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetParallelDirectiveClass");
3599 return ErrorUnexpected;3605 return ErrorUnexpected;
3600 case Stmt::OMPTargetParallelForDirectiveClass:3606 case Stmt::OMPTargetParallelForDirectiveClass:
3601 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetParallelForDirectiveClass");3607 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetParallelForDirectiveClass");
3602 return ErrorUnexpected;3608 return ErrorUnexpected;
3603 case Stmt::OMPTargetTeamsDirectiveClass:3609 case Stmt::OMPTargetTeamsDirectiveClass:
3604 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetTeamsDirectiveClass");3610 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDirectiveClass");
3605 return ErrorUnexpected;3611 return ErrorUnexpected;
3606 case Stmt::OMPTargetUpdateDirectiveClass:3612 case Stmt::OMPTargetUpdateDirectiveClass:
3607 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTargetUpdateDirectiveClass");3613 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetUpdateDirectiveClass");
3608 return ErrorUnexpected;3614 return ErrorUnexpected;
3609 case Stmt::OMPTaskDirectiveClass:3615 case Stmt::OMPTaskDirectiveClass:
3610 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTaskDirectiveClass");3616 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskDirectiveClass");
3611 return ErrorUnexpected;3617 return ErrorUnexpected;
3612 case Stmt::OMPTaskgroupDirectiveClass:3618 case Stmt::OMPTaskgroupDirectiveClass:
3613 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTaskgroupDirectiveClass");3619 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskgroupDirectiveClass");
3614 return ErrorUnexpected;3620 return ErrorUnexpected;
3615 case Stmt::OMPTaskwaitDirectiveClass:3621 case Stmt::OMPTaskwaitDirectiveClass:
3616 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTaskwaitDirectiveClass");3622 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskwaitDirectiveClass");
3617 return ErrorUnexpected;3623 return ErrorUnexpected;
3618 case Stmt::OMPTaskyieldDirectiveClass:3624 case Stmt::OMPTaskyieldDirectiveClass:
3619 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTaskyieldDirectiveClass");3625 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskyieldDirectiveClass");
3620 return ErrorUnexpected;3626 return ErrorUnexpected;
3621 case Stmt::OMPTeamsDirectiveClass:3627 case Stmt::OMPTeamsDirectiveClass:
3622 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPTeamsDirectiveClass");3628 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDirectiveClass");
3623 return ErrorUnexpected;3629 return ErrorUnexpected;
3624 case Stmt::ObjCAtCatchStmtClass:3630 case Stmt::ObjCAtCatchStmtClass:
3625 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAtCatchStmtClass");3631 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtCatchStmtClass");
3626 return ErrorUnexpected;3632 return ErrorUnexpected;
3627 case Stmt::ObjCAtFinallyStmtClass:3633 case Stmt::ObjCAtFinallyStmtClass:
3628 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAtFinallyStmtClass");3634 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtFinallyStmtClass");
3629 return ErrorUnexpected;3635 return ErrorUnexpected;
3630 case Stmt::ObjCAtSynchronizedStmtClass:3636 case Stmt::ObjCAtSynchronizedStmtClass:
3631 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAtSynchronizedStmtClass");3637 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtSynchronizedStmtClass");
3632 return ErrorUnexpected;3638 return ErrorUnexpected;
3633 case Stmt::ObjCAtThrowStmtClass:3639 case Stmt::ObjCAtThrowStmtClass:
3634 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAtThrowStmtClass");3640 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtThrowStmtClass");
3635 return ErrorUnexpected;3641 return ErrorUnexpected;
3636 case Stmt::ObjCAtTryStmtClass:3642 case Stmt::ObjCAtTryStmtClass:
3637 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAtTryStmtClass");3643 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtTryStmtClass");
3638 return ErrorUnexpected;3644 return ErrorUnexpected;
3639 case Stmt::ObjCAutoreleasePoolStmtClass:3645 case Stmt::ObjCAutoreleasePoolStmtClass:
3640 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCAutoreleasePoolStmtClass");3646 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAutoreleasePoolStmtClass");
3641 return ErrorUnexpected;3647 return ErrorUnexpected;
3642 case Stmt::ObjCForCollectionStmtClass:3648 case Stmt::ObjCForCollectionStmtClass:
3643 emit_warning(c, stmt->getLocStart(), "TODO handle C ObjCForCollectionStmtClass");3649 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCForCollectionStmtClass");
3644 return ErrorUnexpected;3650 return ErrorUnexpected;
3645 case Stmt::SEHExceptStmtClass:3651 case Stmt::SEHExceptStmtClass:
3646 emit_warning(c, stmt->getLocStart(), "TODO handle C SEHExceptStmtClass");3652 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHExceptStmtClass");
3647 return ErrorUnexpected;3653 return ErrorUnexpected;
3648 case Stmt::SEHFinallyStmtClass:3654 case Stmt::SEHFinallyStmtClass:
3649 emit_warning(c, stmt->getLocStart(), "TODO handle C SEHFinallyStmtClass");3655 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHFinallyStmtClass");
3650 return ErrorUnexpected;3656 return ErrorUnexpected;
3651 case Stmt::SEHLeaveStmtClass:3657 case Stmt::SEHLeaveStmtClass:
3652 emit_warning(c, stmt->getLocStart(), "TODO handle C SEHLeaveStmtClass");3658 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHLeaveStmtClass");
3653 return ErrorUnexpected;3659 return ErrorUnexpected;
3654 case Stmt::SEHTryStmtClass:3660 case Stmt::SEHTryStmtClass:
3655 emit_warning(c, stmt->getLocStart(), "TODO handle C SEHTryStmtClass");3661 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHTryStmtClass");
3656 return ErrorUnexpected;3662 return ErrorUnexpected;
3657 case Stmt::FixedPointLiteralClass:3663 case Stmt::FixedPointLiteralClass:
3658 emit_warning(c, stmt->getLocStart(), "TODO handle C FixedPointLiteralClass");3664 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FixedPointLiteralClass");
3665 return ErrorUnexpected;
3666 case Stmt::ConstantExprClass:
3667 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ConstantExprClass");
3659 return ErrorUnexpected;3668 return ErrorUnexpected;
3660 }3669 }
3661 zig_unreachable();3670 zig_unreachable();
src/zig_llvm.cpp+5
...@@ -686,6 +686,7 @@ static_assert((Triple::VendorType)ZigLLVM_LastVendorType == Triple::LastVendorTy...@@ -686,6 +686,7 @@ static_assert((Triple::VendorType)ZigLLVM_LastVendorType == Triple::LastVendorTy
686static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, "");686static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, "");
687static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, "");687static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, "");
688static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, "");688static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, "");
689static_assert((Triple::SubArchType)ZigLLVM_MipsSubArch_r6 == Triple::MipsSubArch_r6, "");
689690
690static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, "");691static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, "");
691static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, "");692static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, "");
...@@ -730,6 +731,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {...@@ -730,6 +731,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
730 switch (sub_arch) {731 switch (sub_arch) {
731 case ZigLLVM_NoSubArch:732 case ZigLLVM_NoSubArch:
732 return "(none)";733 return "(none)";
734 case ZigLLVM_ARMSubArch_v8_5a:
735 return "v8_5a";
733 case ZigLLVM_ARMSubArch_v8_4a:736 case ZigLLVM_ARMSubArch_v8_4a:
734 return "v8_4a";737 return "v8_4a";
735 case ZigLLVM_ARMSubArch_v8_3a:738 case ZigLLVM_ARMSubArch_v8_3a:
...@@ -778,6 +781,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {...@@ -778,6 +781,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
778 return "v4";781 return "v4";
779 case ZigLLVM_KalimbaSubArch_v5:782 case ZigLLVM_KalimbaSubArch_v5:
780 return "v5";783 return "v5";
784 case ZigLLVM_MipsSubArch_r6:
785 return "r6";
781 }786 }
782 abort();787 abort();
783}788}
src/zig_llvm.h+3
...@@ -273,6 +273,7 @@ enum ZigLLVM_ArchType {...@@ -273,6 +273,7 @@ enum ZigLLVM_ArchType {
273enum ZigLLVM_SubArchType {273enum ZigLLVM_SubArchType {
274 ZigLLVM_NoSubArch,274 ZigLLVM_NoSubArch,
275275
276 ZigLLVM_ARMSubArch_v8_5a,
276 ZigLLVM_ARMSubArch_v8_4a,277 ZigLLVM_ARMSubArch_v8_4a,
277 ZigLLVM_ARMSubArch_v8_3a,278 ZigLLVM_ARMSubArch_v8_3a,
278 ZigLLVM_ARMSubArch_v8_2a,279 ZigLLVM_ARMSubArch_v8_2a,
...@@ -298,6 +299,8 @@ enum ZigLLVM_SubArchType {...@@ -298,6 +299,8 @@ enum ZigLLVM_SubArchType {
298 ZigLLVM_KalimbaSubArch_v3,299 ZigLLVM_KalimbaSubArch_v3,
299 ZigLLVM_KalimbaSubArch_v4,300 ZigLLVM_KalimbaSubArch_v4,
300 ZigLLVM_KalimbaSubArch_v5,301 ZigLLVM_KalimbaSubArch_v5,
302
303 ZigLLVM_MipsSubArch_r6,
301};304};
302305
303enum ZigLLVM_VendorType {306enum ZigLLVM_VendorType {