authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-02-28 09:55:27-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-02-28 09:55:27-05:00
log6bc19b437c4323f3b71ad38c5e8e9d0a54ad8d74
tree1ffd249e98bb575e5bb6ce6e6820e355b793d5d5
parentea73b8e2b83a2b178d476aff6902ef3c95458e24
signature Commit is signed but in an unrecognized format.

updates to build with llvm 8.0.0rc3


3 files changed, 867 insertions(+), 24 deletions(-)

src/target.cpp+8-2
...@@ -1112,8 +1112,10 @@ const char *target_dynamic_linker(const ZigTarget *target) {...@@ -1112,8 +1112,10 @@ const char *target_dynamic_linker(const ZigTarget *target) {
1112 case OsTvOS:1112 case OsTvOS:
1113 case OsWatchOS:1113 case OsWatchOS:
1114 case OsMacOSX:1114 case OsMacOSX:
1115 case OsUefi:
1115 return nullptr;1116 return nullptr;
11161117
1118 case OsWindows:
1117 case OsAnanas:1119 case OsAnanas:
1118 case OsCloudABI:1120 case OsCloudABI:
1119 case OsDragonFly:1121 case OsDragonFly:
...@@ -1122,7 +1124,6 @@ const char *target_dynamic_linker(const ZigTarget *target) {...@@ -1122,7 +1124,6 @@ const char *target_dynamic_linker(const ZigTarget *target) {
1122 case OsLv2:1124 case OsLv2:
1123 case OsOpenBSD:1125 case OsOpenBSD:
1124 case OsSolaris:1126 case OsSolaris:
1125 case OsWindows:
1126 case OsHaiku:1127 case OsHaiku:
1127 case OsMinix:1128 case OsMinix:
1128 case OsRTEMS:1129 case OsRTEMS:
...@@ -1138,7 +1139,9 @@ const char *target_dynamic_linker(const ZigTarget *target) {...@@ -1138,7 +1139,9 @@ const char *target_dynamic_linker(const ZigTarget *target) {
1138 case OsContiki:1139 case OsContiki:
1139 case OsAMDPAL:1140 case OsAMDPAL:
1140 case OsZen:1141 case OsZen:
1141 case OsUefi:1142 case OsHermitCore:
1143 case OsHurd:
1144 case OsWASI:
1142 zig_panic("TODO implement target_dynamic_linker for this OS");1145 zig_panic("TODO implement target_dynamic_linker for this OS");
1143 }1146 }
1144 zig_unreachable();1147 zig_unreachable();
...@@ -1341,6 +1344,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {...@@ -1341,6 +1344,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
1341 case OsContiki:1344 case OsContiki:
1342 case OsAMDPAL:1345 case OsAMDPAL:
1343 case OsZen:1346 case OsZen:
1347 case OsHermitCore:
1344 return ZigLLVM_EABI;1348 return ZigLLVM_EABI;
1345 case OsOpenBSD:1349 case OsOpenBSD:
1346 case OsMacOSX:1350 case OsMacOSX:
...@@ -1351,11 +1355,13 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {...@@ -1351,11 +1355,13 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
1351 case OsFuchsia:1355 case OsFuchsia:
1352 case OsKFreeBSD:1356 case OsKFreeBSD:
1353 case OsNetBSD:1357 case OsNetBSD:
1358 case OsHurd:
1354 return ZigLLVM_GNU;1359 return ZigLLVM_GNU;
1355 case OsWindows:1360 case OsWindows:
1356 case OsUefi:1361 case OsUefi:
1357 return ZigLLVM_MSVC;1362 return ZigLLVM_MSVC;
1358 case OsLinux:1363 case OsLinux:
1364 case OsWASI:
1359 return ZigLLVM_Musl;1365 return ZigLLVM_Musl;
1360 }1366 }
1361 zig_unreachable();1367 zig_unreachable();
src/translate_c.cpp+858-21
...@@ -482,7 +482,7 @@ static AstNode *add_global_var(Context *c, Buf *var_name, AstNode *value_node) {...@@ -482,7 +482,7 @@ static AstNode *add_global_var(Context *c, Buf *var_name, AstNode *value_node) {
482 return node;482 return node;
483}483}
484484
485static Buf *string_ref_to_buf(StringRef string_ref) {485static Buf *string_ref_to_buf(llvm::StringRef string_ref) {
486 return buf_create_from_mem((const char *)string_ref.bytes_begin(), string_ref.size());486 return buf_create_from_mem((const char *)string_ref.bytes_begin(), string_ref.size());
487}487}
488488
...@@ -932,18 +932,18 @@ static AstNode *trans_type(Context *c, const clang::Type *ty, const clang::Sourc...@@ -932,18 +932,18 @@ static AstNode *trans_type(Context *c, const clang::Type *ty, const clang::Sourc
932 case clang::BuiltinType::SatUShortFract:932 case clang::BuiltinType::SatUShortFract:
933 case clang::BuiltinType::SatUFract:933 case clang::BuiltinType::SatUFract:
934 case clang::BuiltinType::SatULongFract:934 case clang::BuiltinType::SatULongFract:
935 case BuiltinType::OCLIntelSubgroupAVCMcePayload:935 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
936 case BuiltinType::OCLIntelSubgroupAVCImePayload:936 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
937 case BuiltinType::OCLIntelSubgroupAVCRefPayload:937 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
938 case BuiltinType::OCLIntelSubgroupAVCSicPayload:938 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
939 case BuiltinType::OCLIntelSubgroupAVCMceResult:939 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
940 case BuiltinType::OCLIntelSubgroupAVCImeResult:940 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
941 case BuiltinType::OCLIntelSubgroupAVCRefResult:941 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
942 case BuiltinType::OCLIntelSubgroupAVCSicResult:942 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
943 case BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:943 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
944 case BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:944 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
945 case BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:945 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
946 case BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:946 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
947 emit_warning(c, source_loc, "unsupported builtin type");947 emit_warning(c, source_loc, "unsupported builtin type");
948 return nullptr;948 return nullptr;
949 }949 }
...@@ -1053,7 +1053,7 @@ static AstNode *trans_type(Context *c, const clang::Type *ty, const clang::Sourc...@@ -1053,7 +1053,7 @@ static AstNode *trans_type(Context *c, const clang::Type *ty, const clang::Sourc
1053 case clang::CC_PreserveAll:1053 case clang::CC_PreserveAll:
1054 emit_warning(c, source_loc, "unsupported calling convention: PreserveAll");1054 emit_warning(c, source_loc, "unsupported calling convention: PreserveAll");
1055 return nullptr;1055 return nullptr;
1056 case CC_AArch64VectorCall:1056 case clang::CC_AArch64VectorCall:
1057 emit_warning(c, source_loc, "unsupported calling convention: AArch64VectorCall");1057 emit_warning(c, source_loc, "unsupported calling convention: AArch64VectorCall");
1058 return nullptr;1058 return nullptr;
1059 }1059 }
...@@ -1252,7 +1252,7 @@ static AstNode *trans_return_stmt(Context *c, TransScope *scope, const clang::Re...@@ -1252,7 +1252,7 @@ static AstNode *trans_return_stmt(Context *c, TransScope *scope, const clang::Re
1252}1252}
12531253
1254static AstNode *trans_integer_literal(Context *c, const clang::IntegerLiteral *stmt) {1254static AstNode *trans_integer_literal(Context *c, const clang::IntegerLiteral *stmt) {
1255 Expr::EvalResult result;1255 clang::Expr::EvalResult result;
1256 if (!stmt->EvaluateAsInt(result, *reinterpret_cast<clang::ASTContext *>(c->ctx))) {1256 if (!stmt->EvaluateAsInt(result, *reinterpret_cast<clang::ASTContext *>(c->ctx))) {
1257 emit_warning(c, stmt->getBeginLoc(), "invalid integer literal");1257 emit_warning(c, stmt->getBeginLoc(), "invalid integer literal");
1258 return nullptr;1258 return nullptr;
...@@ -1261,8 +1261,10 @@ static AstNode *trans_integer_literal(Context *c, const clang::IntegerLiteral *s...@@ -1261,8 +1261,10 @@ static AstNode *trans_integer_literal(Context *c, const clang::IntegerLiteral *s
1261}1261}
12621262
1263static AstNode *trans_constant_expr(Context *c, const clang::ConstantExpr *expr) {1263static AstNode *trans_constant_expr(Context *c, const clang::ConstantExpr *expr) {
1264 Expr::EvalResult result;1264 clang::Expr::EvalResult result;
1265 if (!expr->EvaluateAsConstantExpr(result, clang::Expr::EvaluateForCodeGen, *c->ctx)) {1265 if (!expr->EvaluateAsConstantExpr(result, clang::Expr::EvaluateForCodeGen,
1266 *reinterpret_cast<clang::ASTContext *>(c->ctx)))
1267 {
1266 emit_warning(c, expr->getBeginLoc(), "invalid constant expression");1268 emit_warning(c, expr->getBeginLoc(), "invalid constant expression");
1267 return nullptr;1269 return nullptr;
1268 }1270 }
...@@ -1794,6 +1796,123 @@ static AstNode *trans_implicit_cast_expr(Context *c, TransScope *scope, const cl...@@ -1794,6 +1796,123 @@ static AstNode *trans_implicit_cast_expr(Context *c, TransScope *scope, const cl
1794 case clang::CK_UserDefinedConversion:1796 case clang::CK_UserDefinedConversion:
1795 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_UserDefinedConversion");1797 emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_UserDefinedConversion");
1796 return nullptr;1798 return nullptr;
1799 case clang::CK_ConstructorConversion:
1800 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ConstructorConversion");
1801 return nullptr;
1802 case clang::CK_IntegralToPointer:
1803 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralToPointer");
1804 return nullptr;
1805 case clang::CK_PointerToIntegral:
1806 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_PointerToIntegral");
1807 return nullptr;
1808 case clang::CK_PointerToBoolean:
1809 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_PointerToBoolean");
1810 return nullptr;
1811 case clang::CK_ToVoid:
1812 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ToVoid");
1813 return nullptr;
1814 case clang::CK_VectorSplat:
1815 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_VectorSplat");
1816 return nullptr;
1817 case clang::CK_IntegralToBoolean:
1818 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralToBoolean");
1819 return nullptr;
1820 case clang::CK_IntegralToFloating:
1821 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralToFloating");
1822 return nullptr;
1823 case clang::CK_FixedPointCast:
1824 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FixedPointCast");
1825 return nullptr;
1826 case clang::CK_FixedPointToBoolean:
1827 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FixedPointToBoolean");
1828 return nullptr;
1829 case clang::CK_FloatingToIntegral:
1830 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingToIntegral");
1831 return nullptr;
1832 case clang::CK_FloatingToBoolean:
1833 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingToBoolean");
1834 return nullptr;
1835 case clang::CK_BooleanToSignedIntegral:
1836 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_BooleanToSignedIntegral");
1837 return nullptr;
1838 case clang::CK_FloatingCast:
1839 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingCast");
1840 return nullptr;
1841 case clang::CK_CPointerToObjCPointerCast:
1842 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_CPointerToObjCPointerCast");
1843 return nullptr;
1844 case clang::CK_BlockPointerToObjCPointerCast:
1845 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_BlockPointerToObjCPointerCast");
1846 return nullptr;
1847 case clang::CK_AnyPointerToBlockPointerCast:
1848 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_AnyPointerToBlockPointerCast");
1849 return nullptr;
1850 case clang::CK_ObjCObjectLValueCast:
1851 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ObjCObjectLValueCast");
1852 return nullptr;
1853 case clang::CK_FloatingRealToComplex:
1854 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingRealToComplex");
1855 return nullptr;
1856 case clang::CK_FloatingComplexToReal:
1857 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingComplexToReal");
1858 return nullptr;
1859 case clang::CK_FloatingComplexToBoolean:
1860 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingComplexToBoolean");
1861 return nullptr;
1862 case clang::CK_FloatingComplexCast:
1863 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingComplexCast");
1864 return nullptr;
1865 case clang::CK_FloatingComplexToIntegralComplex:
1866 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_FloatingComplexToIntegralComplex");
1867 return nullptr;
1868 case clang::CK_IntegralRealToComplex:
1869 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralRealToComplex");
1870 return nullptr;
1871 case clang::CK_IntegralComplexToReal:
1872 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralComplexToReal");
1873 return nullptr;
1874 case clang::CK_IntegralComplexToBoolean:
1875 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralComplexToBoolean");
1876 return nullptr;
1877 case clang::CK_IntegralComplexCast:
1878 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralComplexCast");
1879 return nullptr;
1880 case clang::CK_IntegralComplexToFloatingComplex:
1881 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntegralComplexToFloatingComplex");
1882 return nullptr;
1883 case clang::CK_ARCProduceObject:
1884 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ARCProduceObject");
1885 return nullptr;
1886 case clang::CK_ARCConsumeObject:
1887 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ARCConsumeObject");
1888 return nullptr;
1889 case clang::CK_ARCReclaimReturnedObject:
1890 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ARCReclaimReturnedObject");
1891 return nullptr;
1892 case clang::CK_ARCExtendBlockObject:
1893 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ARCExtendBlockObject");
1894 return nullptr;
1895 case clang::CK_AtomicToNonAtomic:
1896 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_AtomicToNonAtomic");
1897 return nullptr;
1898 case clang::CK_NonAtomicToAtomic:
1899 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_NonAtomicToAtomic");
1900 return nullptr;
1901 case clang::CK_CopyAndAutoreleaseBlockObject:
1902 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_CopyAndAutoreleaseBlockObject");
1903 return nullptr;
1904 case clang::CK_BuiltinFnToFnPtr:
1905 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_BuiltinFnToFnPtr");
1906 return nullptr;
1907 case clang::CK_ZeroToOCLOpaqueType:
1908 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_ZeroToOCLOpaqueType");
1909 return nullptr;
1910 case clang::CK_AddressSpaceConversion:
1911 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_AddressSpaceConversion");
1912 return nullptr;
1913 case clang::CK_IntToOCLSampler:
1914 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CK_IntToOCLSampler");
1915 return nullptr;
1797 }1916 }
1798 zig_unreachable();1917 zig_unreachable();
1799}1918}
...@@ -2061,6 +2180,222 @@ static int trans_local_declaration(Context *c, TransScope *scope, const clang::D...@@ -2061,6 +2180,222 @@ static int trans_local_declaration(Context *c, TransScope *scope, const clang::D
2061 case clang::Decl::AccessSpec:2180 case clang::Decl::AccessSpec:
2062 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind AccessSpec");2181 emit_warning(c, stmt->getBeginLoc(), "TODO handle decl kind AccessSpec");
2063 return ErrorUnexpected;2182 return ErrorUnexpected;
2183 case clang::Decl::Block:
2184 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Block");
2185 return ErrorUnexpected;
2186 case clang::Decl::Captured:
2187 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Captured");
2188 return ErrorUnexpected;
2189 case clang::Decl::ClassScopeFunctionSpecialization:
2190 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ClassScopeFunctionSpecialization");
2191 return ErrorUnexpected;
2192 case clang::Decl::Empty:
2193 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Empty");
2194 return ErrorUnexpected;
2195 case clang::Decl::Export:
2196 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Export");
2197 return ErrorUnexpected;
2198 case clang::Decl::ExternCContext:
2199 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExternCContext");
2200 return ErrorUnexpected;
2201 case clang::Decl::FileScopeAsm:
2202 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FileScopeAsm");
2203 return ErrorUnexpected;
2204 case clang::Decl::Friend:
2205 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Friend");
2206 return ErrorUnexpected;
2207 case clang::Decl::FriendTemplate:
2208 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FriendTemplate");
2209 return ErrorUnexpected;
2210 case clang::Decl::Import:
2211 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Import");
2212 return ErrorUnexpected;
2213 case clang::Decl::LinkageSpec:
2214 emit_warning(c, stmt->getBeginLoc(), "TODO handle C LinkageSpec");
2215 return ErrorUnexpected;
2216 case clang::Decl::Label:
2217 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Label");
2218 return ErrorUnexpected;
2219 case clang::Decl::Namespace:
2220 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Namespace");
2221 return ErrorUnexpected;
2222 case clang::Decl::NamespaceAlias:
2223 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NamespaceAlias");
2224 return ErrorUnexpected;
2225 case clang::Decl::ObjCCompatibleAlias:
2226 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCCompatibleAlias");
2227 return ErrorUnexpected;
2228 case clang::Decl::ObjCCategory:
2229 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCCategory");
2230 return ErrorUnexpected;
2231 case clang::Decl::ObjCCategoryImpl:
2232 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCCategoryImpl");
2233 return ErrorUnexpected;
2234 case clang::Decl::ObjCImplementation:
2235 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCImplementation");
2236 return ErrorUnexpected;
2237 case clang::Decl::ObjCInterface:
2238 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCInterface");
2239 return ErrorUnexpected;
2240 case clang::Decl::ObjCProtocol:
2241 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCProtocol");
2242 return ErrorUnexpected;
2243 case clang::Decl::ObjCMethod:
2244 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCMethod");
2245 return ErrorUnexpected;
2246 case clang::Decl::ObjCProperty:
2247 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCProperty");
2248 return ErrorUnexpected;
2249 case clang::Decl::BuiltinTemplate:
2250 emit_warning(c, stmt->getBeginLoc(), "TODO handle C BuiltinTemplate");
2251 return ErrorUnexpected;
2252 case clang::Decl::ClassTemplate:
2253 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ClassTemplate");
2254 return ErrorUnexpected;
2255 case clang::Decl::FunctionTemplate:
2256 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FunctionTemplate");
2257 return ErrorUnexpected;
2258 case clang::Decl::TypeAliasTemplate:
2259 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TypeAliasTemplate");
2260 return ErrorUnexpected;
2261 case clang::Decl::VarTemplate:
2262 emit_warning(c, stmt->getBeginLoc(), "TODO handle C VarTemplate");
2263 return ErrorUnexpected;
2264 case clang::Decl::TemplateTemplateParm:
2265 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TemplateTemplateParm");
2266 return ErrorUnexpected;
2267 case clang::Decl::Enum:
2268 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Enum");
2269 return ErrorUnexpected;
2270 case clang::Decl::Record:
2271 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Record");
2272 return ErrorUnexpected;
2273 case clang::Decl::CXXRecord:
2274 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXRecord");
2275 return ErrorUnexpected;
2276 case clang::Decl::ClassTemplateSpecialization:
2277 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ClassTemplateSpecialization");
2278 return ErrorUnexpected;
2279 case clang::Decl::ClassTemplatePartialSpecialization:
2280 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ClassTemplatePartialSpecialization");
2281 return ErrorUnexpected;
2282 case clang::Decl::TemplateTypeParm:
2283 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TemplateTypeParm");
2284 return ErrorUnexpected;
2285 case clang::Decl::ObjCTypeParam:
2286 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCTypeParam");
2287 return ErrorUnexpected;
2288 case clang::Decl::TypeAlias:
2289 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TypeAlias");
2290 return ErrorUnexpected;
2291 case clang::Decl::Typedef:
2292 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Typedef");
2293 return ErrorUnexpected;
2294 case clang::Decl::UnresolvedUsingTypename:
2295 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UnresolvedUsingTypename");
2296 return ErrorUnexpected;
2297 case clang::Decl::Using:
2298 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Using");
2299 return ErrorUnexpected;
2300 case clang::Decl::UsingDirective:
2301 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UsingDirective");
2302 return ErrorUnexpected;
2303 case clang::Decl::UsingPack:
2304 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UsingPack");
2305 return ErrorUnexpected;
2306 case clang::Decl::UsingShadow:
2307 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UsingShadow");
2308 return ErrorUnexpected;
2309 case clang::Decl::ConstructorUsingShadow:
2310 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ConstructorUsingShadow");
2311 return ErrorUnexpected;
2312 case clang::Decl::Binding:
2313 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Binding");
2314 return ErrorUnexpected;
2315 case clang::Decl::Field:
2316 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Field");
2317 return ErrorUnexpected;
2318 case clang::Decl::ObjCAtDefsField:
2319 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtDefsField");
2320 return ErrorUnexpected;
2321 case clang::Decl::ObjCIvar:
2322 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIvar");
2323 return ErrorUnexpected;
2324 case clang::Decl::Function:
2325 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Function");
2326 return ErrorUnexpected;
2327 case clang::Decl::CXXDeductionGuide:
2328 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDeductionGuide");
2329 return ErrorUnexpected;
2330 case clang::Decl::CXXMethod:
2331 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXMethod");
2332 return ErrorUnexpected;
2333 case clang::Decl::CXXConstructor:
2334 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXConstructor");
2335 return ErrorUnexpected;
2336 case clang::Decl::CXXConversion:
2337 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXConversion");
2338 return ErrorUnexpected;
2339 case clang::Decl::CXXDestructor:
2340 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDestructor");
2341 return ErrorUnexpected;
2342 case clang::Decl::MSProperty:
2343 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSProperty");
2344 return ErrorUnexpected;
2345 case clang::Decl::NonTypeTemplateParm:
2346 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NonTypeTemplateParm");
2347 return ErrorUnexpected;
2348 case clang::Decl::Decomposition:
2349 emit_warning(c, stmt->getBeginLoc(), "TODO handle C Decomposition");
2350 return ErrorUnexpected;
2351 case clang::Decl::ImplicitParam:
2352 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ImplicitParam");
2353 return ErrorUnexpected;
2354 case clang::Decl::OMPCapturedExpr:
2355 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCapturedExpr");
2356 return ErrorUnexpected;
2357 case clang::Decl::ParmVar:
2358 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ParmVar");
2359 return ErrorUnexpected;
2360 case clang::Decl::VarTemplateSpecialization:
2361 emit_warning(c, stmt->getBeginLoc(), "TODO handle C VarTemplateSpecialization");
2362 return ErrorUnexpected;
2363 case clang::Decl::VarTemplatePartialSpecialization:
2364 emit_warning(c, stmt->getBeginLoc(), "TODO handle C VarTemplatePartialSpecialization");
2365 return ErrorUnexpected;
2366 case clang::Decl::EnumConstant:
2367 emit_warning(c, stmt->getBeginLoc(), "TODO handle C EnumConstant");
2368 return ErrorUnexpected;
2369 case clang::Decl::IndirectField:
2370 emit_warning(c, stmt->getBeginLoc(), "TODO handle C IndirectField");
2371 return ErrorUnexpected;
2372 case clang::Decl::OMPDeclareReduction:
2373 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDeclareReduction");
2374 return ErrorUnexpected;
2375 case clang::Decl::UnresolvedUsingValue:
2376 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UnresolvedUsingValue");
2377 return ErrorUnexpected;
2378 case clang::Decl::OMPRequires:
2379 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPRequires");
2380 return ErrorUnexpected;
2381 case clang::Decl::OMPThreadPrivate:
2382 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPThreadPrivate");
2383 return ErrorUnexpected;
2384 case clang::Decl::ObjCPropertyImpl:
2385 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCPropertyImpl");
2386 return ErrorUnexpected;
2387 case clang::Decl::PragmaComment:
2388 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PragmaComment");
2389 return ErrorUnexpected;
2390 case clang::Decl::PragmaDetectMismatch:
2391 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PragmaDetectMismatch");
2392 return ErrorUnexpected;
2393 case clang::Decl::StaticAssert:
2394 emit_warning(c, stmt->getBeginLoc(), "TODO handle C StaticAssert");
2395 return ErrorUnexpected;
2396 case clang::Decl::TranslationUnit:
2397 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TranslationUnit");
2398 return ErrorUnexpected;
2064 }2399 }
2065 zig_unreachable();2400 zig_unreachable();
2066 }2401 }
...@@ -2281,7 +2616,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *...@@ -2281,7 +2616,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
2281 const clang::ElaboratedType *elaborated_ty = static_cast<const clang::ElaboratedType*>(ty);2616 const clang::ElaboratedType *elaborated_ty = static_cast<const clang::ElaboratedType*>(ty);
2282 switch (elaborated_ty->getKeyword()) {2617 switch (elaborated_ty->getKeyword()) {
2283 case clang::ETK_Enum: {2618 case clang::ETK_Enum: {
2284 AstNode *enum_type = trans_qual_type(c, elaborated_ty->getNamedType(), expr->getBeginloc());2619 AstNode *enum_type = trans_qual_type(c, elaborated_ty->getNamedType(), expr->getBeginLoc());
2285 return to_enum_zero_cmp(c, res, enum_type);2620 return to_enum_zero_cmp(c, res, enum_type);
2286 }2621 }
2287 case clang::ETK_Struct:2622 case clang::ETK_Struct:
...@@ -2765,8 +3100,6 @@ static AstNode *trans_string_literal(Context *c, TransScope *scope, const clang:...@@ -2765,8 +3100,6 @@ static AstNode *trans_string_literal(Context *c, TransScope *scope, const clang:
2765 return nullptr;3100 return nullptr;
2766 case clang::StringLiteral::UTF32:3101 case clang::StringLiteral::UTF32:
2767 emit_warning(c, stmt->getBeginLoc(), "TODO support UTF32 string literals");3102 emit_warning(c, stmt->getBeginLoc(), "TODO support UTF32 string literals");
2768 case clang::StringLiteral::UTF32:
2769 emit_warning(c, stmt->getLocStart(), "TODO support UTF32 string literals");
2770 return nullptr;3103 return nullptr;
2771 case clang::StringLiteral::Wide:3104 case clang::StringLiteral::Wide:
2772 emit_warning(c, stmt->getBeginLoc(), "TODO support wide string literals");3105 emit_warning(c, stmt->getBeginLoc(), "TODO support wide string literals");
...@@ -2904,6 +3237,510 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *st...@@ -2904,6 +3237,510 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *st
2904 case clang::Stmt::NoStmtClass:3237 case clang::Stmt::NoStmtClass:
2905 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NoStmtClass");3238 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NoStmtClass");
2906 return ErrorUnexpected;3239 return ErrorUnexpected;
3240 case clang::Stmt::GCCAsmStmtClass:
3241 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GCCAsmStmtClass");
3242 return ErrorUnexpected;
3243 case clang::Stmt::MSAsmStmtClass:
3244 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSAsmStmtClass");
3245 return ErrorUnexpected;
3246 case clang::Stmt::AttributedStmtClass:
3247 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AttributedStmtClass");
3248 return ErrorUnexpected;
3249 case clang::Stmt::CXXCatchStmtClass:
3250 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXCatchStmtClass");
3251 return ErrorUnexpected;
3252 case clang::Stmt::CXXForRangeStmtClass:
3253 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXForRangeStmtClass");
3254 return ErrorUnexpected;
3255 case clang::Stmt::CXXTryStmtClass:
3256 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXTryStmtClass");
3257 return ErrorUnexpected;
3258 case clang::Stmt::CapturedStmtClass:
3259 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CapturedStmtClass");
3260 return ErrorUnexpected;
3261 case clang::Stmt::CoreturnStmtClass:
3262 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoreturnStmtClass");
3263 return ErrorUnexpected;
3264 case clang::Stmt::CoroutineBodyStmtClass:
3265 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoroutineBodyStmtClass");
3266 return ErrorUnexpected;
3267 case clang::Stmt::BinaryConditionalOperatorClass:
3268 emit_warning(c, stmt->getBeginLoc(), "TODO handle C BinaryConditionalOperatorClass");
3269 return ErrorUnexpected;
3270 case clang::Stmt::AddrLabelExprClass:
3271 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AddrLabelExprClass");
3272 return ErrorUnexpected;
3273 case clang::Stmt::ArrayInitIndexExprClass:
3274 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ArrayInitIndexExprClass");
3275 return ErrorUnexpected;
3276 case clang::Stmt::ArrayInitLoopExprClass:
3277 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ArrayInitLoopExprClass");
3278 return ErrorUnexpected;
3279 case clang::Stmt::ArrayTypeTraitExprClass:
3280 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ArrayTypeTraitExprClass");
3281 return ErrorUnexpected;
3282 case clang::Stmt::AsTypeExprClass:
3283 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AsTypeExprClass");
3284 return ErrorUnexpected;
3285 case clang::Stmt::AtomicExprClass:
3286 emit_warning(c, stmt->getBeginLoc(), "TODO handle C AtomicExprClass");
3287 return ErrorUnexpected;
3288 case clang::Stmt::BlockExprClass:
3289 emit_warning(c, stmt->getBeginLoc(), "TODO handle C BlockExprClass");
3290 return ErrorUnexpected;
3291 case clang::Stmt::CXXBindTemporaryExprClass:
3292 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXBindTemporaryExprClass");
3293 return ErrorUnexpected;
3294 case clang::Stmt::CXXBoolLiteralExprClass:
3295 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXBoolLiteralExprClass");
3296 return ErrorUnexpected;
3297 case clang::Stmt::CXXConstructExprClass:
3298 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXConstructExprClass");
3299 return ErrorUnexpected;
3300 case clang::Stmt::CXXTemporaryObjectExprClass:
3301 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXTemporaryObjectExprClass");
3302 return ErrorUnexpected;
3303 case clang::Stmt::CXXDefaultArgExprClass:
3304 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDefaultArgExprClass");
3305 return ErrorUnexpected;
3306 case clang::Stmt::CXXDefaultInitExprClass:
3307 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDefaultInitExprClass");
3308 return ErrorUnexpected;
3309 case clang::Stmt::CXXDeleteExprClass:
3310 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDeleteExprClass");
3311 return ErrorUnexpected;
3312 case clang::Stmt::CXXDependentScopeMemberExprClass:
3313 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDependentScopeMemberExprClass");
3314 return ErrorUnexpected;
3315 case clang::Stmt::CXXFoldExprClass:
3316 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXFoldExprClass");
3317 return ErrorUnexpected;
3318 case clang::Stmt::CXXInheritedCtorInitExprClass:
3319 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXInheritedCtorInitExprClass");
3320 return ErrorUnexpected;
3321 case clang::Stmt::CXXNewExprClass:
3322 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXNewExprClass");
3323 return ErrorUnexpected;
3324 case clang::Stmt::CXXNoexceptExprClass:
3325 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXNoexceptExprClass");
3326 return ErrorUnexpected;
3327 case clang::Stmt::CXXNullPtrLiteralExprClass:
3328 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXNullPtrLiteralExprClass");
3329 return ErrorUnexpected;
3330 case clang::Stmt::CXXPseudoDestructorExprClass:
3331 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXPseudoDestructorExprClass");
3332 return ErrorUnexpected;
3333 case clang::Stmt::CXXScalarValueInitExprClass:
3334 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXScalarValueInitExprClass");
3335 return ErrorUnexpected;
3336 case clang::Stmt::CXXStdInitializerListExprClass:
3337 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXStdInitializerListExprClass");
3338 return ErrorUnexpected;
3339 case clang::Stmt::CXXThisExprClass:
3340 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXThisExprClass");
3341 return ErrorUnexpected;
3342 case clang::Stmt::CXXThrowExprClass:
3343 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXThrowExprClass");
3344 return ErrorUnexpected;
3345 case clang::Stmt::CXXTypeidExprClass:
3346 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXTypeidExprClass");
3347 return ErrorUnexpected;
3348 case clang::Stmt::CXXUnresolvedConstructExprClass:
3349 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXUnresolvedConstructExprClass");
3350 return ErrorUnexpected;
3351 case clang::Stmt::CXXUuidofExprClass:
3352 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXUuidofExprClass");
3353 return ErrorUnexpected;
3354 case clang::Stmt::CUDAKernelCallExprClass:
3355 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CUDAKernelCallExprClass");
3356 return ErrorUnexpected;
3357 case clang::Stmt::CXXMemberCallExprClass:
3358 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXMemberCallExprClass");
3359 return ErrorUnexpected;
3360 case clang::Stmt::CXXOperatorCallExprClass:
3361 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXOperatorCallExprClass");
3362 return ErrorUnexpected;
3363 case clang::Stmt::UserDefinedLiteralClass:
3364 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UserDefinedLiteralClass");
3365 return ErrorUnexpected;
3366 case clang::Stmt::CXXFunctionalCastExprClass:
3367 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXFunctionalCastExprClass");
3368 return ErrorUnexpected;
3369 case clang::Stmt::CXXConstCastExprClass:
3370 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXConstCastExprClass");
3371 return ErrorUnexpected;
3372 case clang::Stmt::CXXDynamicCastExprClass:
3373 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXDynamicCastExprClass");
3374 return ErrorUnexpected;
3375 case clang::Stmt::CXXReinterpretCastExprClass:
3376 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXReinterpretCastExprClass");
3377 return ErrorUnexpected;
3378 case clang::Stmt::CXXStaticCastExprClass:
3379 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CXXStaticCastExprClass");
3380 return ErrorUnexpected;
3381 case clang::Stmt::ObjCBridgedCastExprClass:
3382 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCBridgedCastExprClass");
3383 return ErrorUnexpected;
3384 case clang::Stmt::CharacterLiteralClass:
3385 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CharacterLiteralClass");
3386 return ErrorUnexpected;
3387 case clang::Stmt::ChooseExprClass:
3388 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ChooseExprClass");
3389 return ErrorUnexpected;
3390 case clang::Stmt::CompoundLiteralExprClass:
3391 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CompoundLiteralExprClass");
3392 return ErrorUnexpected;
3393 case clang::Stmt::ConvertVectorExprClass:
3394 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ConvertVectorExprClass");
3395 return ErrorUnexpected;
3396 case clang::Stmt::CoawaitExprClass:
3397 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoawaitExprClass");
3398 return ErrorUnexpected;
3399 case clang::Stmt::CoyieldExprClass:
3400 emit_warning(c, stmt->getBeginLoc(), "TODO handle C CoyieldExprClass");
3401 return ErrorUnexpected;
3402 case clang::Stmt::DependentCoawaitExprClass:
3403 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DependentCoawaitExprClass");
3404 return ErrorUnexpected;
3405 case clang::Stmt::DependentScopeDeclRefExprClass:
3406 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DependentScopeDeclRefExprClass");
3407 return ErrorUnexpected;
3408 case clang::Stmt::DesignatedInitExprClass:
3409 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DesignatedInitExprClass");
3410 return ErrorUnexpected;
3411 case clang::Stmt::DesignatedInitUpdateExprClass:
3412 emit_warning(c, stmt->getBeginLoc(), "TODO handle C DesignatedInitUpdateExprClass");
3413 return ErrorUnexpected;
3414 case clang::Stmt::ExpressionTraitExprClass:
3415 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExpressionTraitExprClass");
3416 return ErrorUnexpected;
3417 case clang::Stmt::ExtVectorElementExprClass:
3418 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExtVectorElementExprClass");
3419 return ErrorUnexpected;
3420 case clang::Stmt::FixedPointLiteralClass:
3421 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FixedPointLiteralClass");
3422 return ErrorUnexpected;
3423 case clang::Stmt::FloatingLiteralClass:
3424 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FloatingLiteralClass");
3425 return ErrorUnexpected;
3426 case clang::Stmt::ExprWithCleanupsClass:
3427 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ExprWithCleanupsClass");
3428 return ErrorUnexpected;
3429 case clang::Stmt::FunctionParmPackExprClass:
3430 emit_warning(c, stmt->getBeginLoc(), "TODO handle C FunctionParmPackExprClass");
3431 return ErrorUnexpected;
3432 case clang::Stmt::GNUNullExprClass:
3433 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GNUNullExprClass");
3434 return ErrorUnexpected;
3435 case clang::Stmt::GenericSelectionExprClass:
3436 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GenericSelectionExprClass");
3437 return ErrorUnexpected;
3438 case clang::Stmt::ImaginaryLiteralClass:
3439 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ImaginaryLiteralClass");
3440 return ErrorUnexpected;
3441 case clang::Stmt::ImplicitValueInitExprClass:
3442 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ImplicitValueInitExprClass");
3443 return ErrorUnexpected;
3444 case clang::Stmt::InitListExprClass:
3445 emit_warning(c, stmt->getBeginLoc(), "TODO handle C InitListExprClass");
3446 return ErrorUnexpected;
3447 case clang::Stmt::LambdaExprClass:
3448 emit_warning(c, stmt->getBeginLoc(), "TODO handle C LambdaExprClass");
3449 return ErrorUnexpected;
3450 case clang::Stmt::MSPropertyRefExprClass:
3451 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSPropertyRefExprClass");
3452 return ErrorUnexpected;
3453 case clang::Stmt::MSPropertySubscriptExprClass:
3454 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSPropertySubscriptExprClass");
3455 return ErrorUnexpected;
3456 case clang::Stmt::MaterializeTemporaryExprClass:
3457 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MaterializeTemporaryExprClass");
3458 return ErrorUnexpected;
3459 case clang::Stmt::NoInitExprClass:
3460 emit_warning(c, stmt->getBeginLoc(), "TODO handle C NoInitExprClass");
3461 return ErrorUnexpected;
3462 case clang::Stmt::OMPArraySectionExprClass:
3463 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPArraySectionExprClass");
3464 return ErrorUnexpected;
3465 case clang::Stmt::ObjCArrayLiteralClass:
3466 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCArrayLiteralClass");
3467 return ErrorUnexpected;
3468 case clang::Stmt::ObjCAvailabilityCheckExprClass:
3469 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAvailabilityCheckExprClass");
3470 return ErrorUnexpected;
3471 case clang::Stmt::ObjCBoolLiteralExprClass:
3472 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCBoolLiteralExprClass");
3473 return ErrorUnexpected;
3474 case clang::Stmt::ObjCBoxedExprClass:
3475 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCBoxedExprClass");
3476 return ErrorUnexpected;
3477 case clang::Stmt::ObjCDictionaryLiteralClass:
3478 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCDictionaryLiteralClass");
3479 return ErrorUnexpected;
3480 case clang::Stmt::ObjCEncodeExprClass:
3481 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCEncodeExprClass");
3482 return ErrorUnexpected;
3483 case clang::Stmt::ObjCIndirectCopyRestoreExprClass:
3484 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIndirectCopyRestoreExprClass");
3485 return ErrorUnexpected;
3486 case clang::Stmt::ObjCIsaExprClass:
3487 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIsaExprClass");
3488 return ErrorUnexpected;
3489 case clang::Stmt::ObjCIvarRefExprClass:
3490 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCIvarRefExprClass");
3491 return ErrorUnexpected;
3492 case clang::Stmt::ObjCMessageExprClass:
3493 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCMessageExprClass");
3494 return ErrorUnexpected;
3495 case clang::Stmt::ObjCPropertyRefExprClass:
3496 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCPropertyRefExprClass");
3497 return ErrorUnexpected;
3498 case clang::Stmt::ObjCProtocolExprClass:
3499 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCProtocolExprClass");
3500 return ErrorUnexpected;
3501 case clang::Stmt::ObjCSelectorExprClass:
3502 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCSelectorExprClass");
3503 return ErrorUnexpected;
3504 case clang::Stmt::ObjCStringLiteralClass:
3505 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCStringLiteralClass");
3506 return ErrorUnexpected;
3507 case clang::Stmt::ObjCSubscriptRefExprClass:
3508 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCSubscriptRefExprClass");
3509 return ErrorUnexpected;
3510 case clang::Stmt::OffsetOfExprClass:
3511 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OffsetOfExprClass");
3512 return ErrorUnexpected;
3513 case clang::Stmt::OpaqueValueExprClass:
3514 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OpaqueValueExprClass");
3515 return ErrorUnexpected;
3516 case clang::Stmt::UnresolvedLookupExprClass:
3517 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UnresolvedLookupExprClass");
3518 return ErrorUnexpected;
3519 case clang::Stmt::UnresolvedMemberExprClass:
3520 emit_warning(c, stmt->getBeginLoc(), "TODO handle C UnresolvedMemberExprClass");
3521 return ErrorUnexpected;
3522 case clang::Stmt::PackExpansionExprClass:
3523 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PackExpansionExprClass");
3524 return ErrorUnexpected;
3525 case clang::Stmt::ParenListExprClass:
3526 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ParenListExprClass");
3527 return ErrorUnexpected;
3528 case clang::Stmt::PredefinedExprClass:
3529 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PredefinedExprClass");
3530 return ErrorUnexpected;
3531 case clang::Stmt::PseudoObjectExprClass:
3532 emit_warning(c, stmt->getBeginLoc(), "TODO handle C PseudoObjectExprClass");
3533 return ErrorUnexpected;
3534 case clang::Stmt::ShuffleVectorExprClass:
3535 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ShuffleVectorExprClass");
3536 return ErrorUnexpected;
3537 case clang::Stmt::SizeOfPackExprClass:
3538 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SizeOfPackExprClass");
3539 return ErrorUnexpected;
3540 case clang::Stmt::StmtExprClass:
3541 emit_warning(c, stmt->getBeginLoc(), "TODO handle C StmtExprClass");
3542 return ErrorUnexpected;
3543 case clang::Stmt::SubstNonTypeTemplateParmExprClass:
3544 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SubstNonTypeTemplateParmExprClass");
3545 return ErrorUnexpected;
3546 case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:
3547 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SubstNonTypeTemplateParmPackExprClass");
3548 return ErrorUnexpected;
3549 case clang::Stmt::TypeTraitExprClass:
3550 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TypeTraitExprClass");
3551 return ErrorUnexpected;
3552 case clang::Stmt::TypoExprClass:
3553 emit_warning(c, stmt->getBeginLoc(), "TODO handle C TypoExprClass");
3554 return ErrorUnexpected;
3555 case clang::Stmt::VAArgExprClass:
3556 emit_warning(c, stmt->getBeginLoc(), "TODO handle C VAArgExprClass");
3557 return ErrorUnexpected;
3558 case clang::Stmt::GotoStmtClass:
3559 emit_warning(c, stmt->getBeginLoc(), "TODO handle C GotoStmtClass");
3560 return ErrorUnexpected;
3561 case clang::Stmt::IndirectGotoStmtClass:
3562 emit_warning(c, stmt->getBeginLoc(), "TODO handle C IndirectGotoStmtClass");
3563 return ErrorUnexpected;
3564 case clang::Stmt::LabelStmtClass:
3565 emit_warning(c, stmt->getBeginLoc(), "TODO handle C LabelStmtClass");
3566 return ErrorUnexpected;
3567 case clang::Stmt::MSDependentExistsStmtClass:
3568 emit_warning(c, stmt->getBeginLoc(), "TODO handle C MSDependentExistsStmtClass");
3569 return ErrorUnexpected;
3570 case clang::Stmt::OMPAtomicDirectiveClass:
3571 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPAtomicDirectiveClass");
3572 return ErrorUnexpected;
3573 case clang::Stmt::OMPBarrierDirectiveClass:
3574 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPBarrierDirectiveClass");
3575 return ErrorUnexpected;
3576 case clang::Stmt::OMPCancelDirectiveClass:
3577 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCancelDirectiveClass");
3578 return ErrorUnexpected;
3579 case clang::Stmt::OMPCancellationPointDirectiveClass:
3580 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCancellationPointDirectiveClass");
3581 return ErrorUnexpected;
3582 case clang::Stmt::OMPCriticalDirectiveClass:
3583 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPCriticalDirectiveClass");
3584 return ErrorUnexpected;
3585 case clang::Stmt::OMPFlushDirectiveClass:
3586 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPFlushDirectiveClass");
3587 return ErrorUnexpected;
3588 case clang::Stmt::OMPDistributeDirectiveClass:
3589 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeDirectiveClass");
3590 return ErrorUnexpected;
3591 case clang::Stmt::OMPDistributeParallelForDirectiveClass:
3592 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeParallelForDirectiveClass");
3593 return ErrorUnexpected;
3594 case clang::Stmt::OMPDistributeParallelForSimdDirectiveClass:
3595 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeParallelForSimdDirectiveClass");
3596 return ErrorUnexpected;
3597 case clang::Stmt::OMPDistributeSimdDirectiveClass:
3598 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPDistributeSimdDirectiveClass");
3599 return ErrorUnexpected;
3600 case clang::Stmt::OMPForDirectiveClass:
3601 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPForDirectiveClass");
3602 return ErrorUnexpected;
3603 case clang::Stmt::OMPForSimdDirectiveClass:
3604 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPForSimdDirectiveClass");
3605 return ErrorUnexpected;
3606 case clang::Stmt::OMPParallelForDirectiveClass:
3607 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelForDirectiveClass");
3608 return ErrorUnexpected;
3609 case clang::Stmt::OMPParallelForSimdDirectiveClass:
3610 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelForSimdDirectiveClass");
3611 return ErrorUnexpected;
3612 case clang::Stmt::OMPSimdDirectiveClass:
3613 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSimdDirectiveClass");
3614 return ErrorUnexpected;
3615 case clang::Stmt::OMPTargetParallelForSimdDirectiveClass:
3616 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetParallelForSimdDirectiveClass");
3617 return ErrorUnexpected;
3618 case clang::Stmt::OMPTargetSimdDirectiveClass:
3619 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetSimdDirectiveClass");
3620 return ErrorUnexpected;
3621 case clang::Stmt::OMPTargetTeamsDistributeDirectiveClass:
3622 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeDirectiveClass");
3623 return ErrorUnexpected;
3624 case clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
3625 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass");
3626 return ErrorUnexpected;
3627 case clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
3628 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass");
3629 return ErrorUnexpected;
3630 case clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
3631 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass");
3632 return ErrorUnexpected;
3633 case clang::Stmt::OMPTaskLoopDirectiveClass:
3634 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskLoopDirectiveClass");
3635 return ErrorUnexpected;
3636 case clang::Stmt::OMPTaskLoopSimdDirectiveClass:
3637 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskLoopSimdDirectiveClass");
3638 return ErrorUnexpected;
3639 case clang::Stmt::OMPTeamsDistributeDirectiveClass:
3640 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeDirectiveClass");
3641 return ErrorUnexpected;
3642 case clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass:
3643 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass");
3644 return ErrorUnexpected;
3645 case clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
3646 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass");
3647 return ErrorUnexpected;
3648 case clang::Stmt::OMPTeamsDistributeSimdDirectiveClass:
3649 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDistributeSimdDirectiveClass");
3650 return ErrorUnexpected;
3651 case clang::Stmt::OMPMasterDirectiveClass:
3652 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPMasterDirectiveClass");
3653 return ErrorUnexpected;
3654 case clang::Stmt::OMPOrderedDirectiveClass:
3655 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPOrderedDirectiveClass");
3656 return ErrorUnexpected;
3657 case clang::Stmt::OMPParallelDirectiveClass:
3658 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelDirectiveClass");
3659 return ErrorUnexpected;
3660 case clang::Stmt::OMPParallelSectionsDirectiveClass:
3661 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPParallelSectionsDirectiveClass");
3662 return ErrorUnexpected;
3663 case clang::Stmt::OMPSectionDirectiveClass:
3664 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSectionDirectiveClass");
3665 return ErrorUnexpected;
3666 case clang::Stmt::OMPSectionsDirectiveClass:
3667 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSectionsDirectiveClass");
3668 return ErrorUnexpected;
3669 case clang::Stmt::OMPSingleDirectiveClass:
3670 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPSingleDirectiveClass");
3671 return ErrorUnexpected;
3672 case clang::Stmt::OMPTargetDataDirectiveClass:
3673 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetDataDirectiveClass");
3674 return ErrorUnexpected;
3675 case clang::Stmt::OMPTargetDirectiveClass:
3676 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetDirectiveClass");
3677 return ErrorUnexpected;
3678 case clang::Stmt::OMPTargetEnterDataDirectiveClass:
3679 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetEnterDataDirectiveClass");
3680 return ErrorUnexpected;
3681 case clang::Stmt::OMPTargetExitDataDirectiveClass:
3682 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetExitDataDirectiveClass");
3683 return ErrorUnexpected;
3684 case clang::Stmt::OMPTargetParallelDirectiveClass:
3685 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetParallelDirectiveClass");
3686 return ErrorUnexpected;
3687 case clang::Stmt::OMPTargetParallelForDirectiveClass:
3688 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetParallelForDirectiveClass");
3689 return ErrorUnexpected;
3690 case clang::Stmt::OMPTargetTeamsDirectiveClass:
3691 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetTeamsDirectiveClass");
3692 return ErrorUnexpected;
3693 case clang::Stmt::OMPTargetUpdateDirectiveClass:
3694 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTargetUpdateDirectiveClass");
3695 return ErrorUnexpected;
3696 case clang::Stmt::OMPTaskDirectiveClass:
3697 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskDirectiveClass");
3698 return ErrorUnexpected;
3699 case clang::Stmt::OMPTaskgroupDirectiveClass:
3700 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskgroupDirectiveClass");
3701 return ErrorUnexpected;
3702 case clang::Stmt::OMPTaskwaitDirectiveClass:
3703 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskwaitDirectiveClass");
3704 return ErrorUnexpected;
3705 case clang::Stmt::OMPTaskyieldDirectiveClass:
3706 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTaskyieldDirectiveClass");
3707 return ErrorUnexpected;
3708 case clang::Stmt::OMPTeamsDirectiveClass:
3709 emit_warning(c, stmt->getBeginLoc(), "TODO handle C OMPTeamsDirectiveClass");
3710 return ErrorUnexpected;
3711 case clang::Stmt::ObjCAtCatchStmtClass:
3712 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtCatchStmtClass");
3713 return ErrorUnexpected;
3714 case clang::Stmt::ObjCAtFinallyStmtClass:
3715 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtFinallyStmtClass");
3716 return ErrorUnexpected;
3717 case clang::Stmt::ObjCAtSynchronizedStmtClass:
3718 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtSynchronizedStmtClass");
3719 return ErrorUnexpected;
3720 case clang::Stmt::ObjCAtThrowStmtClass:
3721 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtThrowStmtClass");
3722 return ErrorUnexpected;
3723 case clang::Stmt::ObjCAtTryStmtClass:
3724 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAtTryStmtClass");
3725 return ErrorUnexpected;
3726 case clang::Stmt::ObjCAutoreleasePoolStmtClass:
3727 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCAutoreleasePoolStmtClass");
3728 return ErrorUnexpected;
3729 case clang::Stmt::ObjCForCollectionStmtClass:
3730 emit_warning(c, stmt->getBeginLoc(), "TODO handle C ObjCForCollectionStmtClass");
3731 return ErrorUnexpected;
3732 case clang::Stmt::SEHExceptStmtClass:
3733 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHExceptStmtClass");
3734 return ErrorUnexpected;
3735 case clang::Stmt::SEHFinallyStmtClass:
3736 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHFinallyStmtClass");
3737 return ErrorUnexpected;
3738 case clang::Stmt::SEHLeaveStmtClass:
3739 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHLeaveStmtClass");
3740 return ErrorUnexpected;
3741 case clang::Stmt::SEHTryStmtClass:
3742 emit_warning(c, stmt->getBeginLoc(), "TODO handle C SEHTryStmtClass");
3743 return ErrorUnexpected;
2907 }3744 }
2908 zig_unreachable();3745 zig_unreachable();
2909}3746}
...@@ -4115,7 +4952,7 @@ Error parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const...@@ -4115,7 +4952,7 @@ Error parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const
4115 case clang::DiagnosticsEngine::Fatal:4952 case clang::DiagnosticsEngine::Fatal:
4116 break;4953 break;
4117 }4954 }
4118 StringRef msg_str_ref = it->getMessage();4955 llvm::StringRef msg_str_ref = it->getMessage();
4119 Buf *msg = string_ref_to_buf(msg_str_ref);4956 Buf *msg = string_ref_to_buf(msg_str_ref);
4120 clang::FullSourceLoc fsl = it->getLocation();4957 clang::FullSourceLoc fsl = it->getLocation();
4121 if (fsl.hasManager()) {4958 if (fsl.hasManager()) {
src/zig_clang.cpp+1-1
...@@ -170,7 +170,7 @@ ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const ZigClangSource...@@ -170,7 +170,7 @@ ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const ZigClangSource
170const char *ZigClangSourceManager_getFilename(const ZigClangSourceManager *self,170const char *ZigClangSourceManager_getFilename(const ZigClangSourceManager *self,
171 ZigClangSourceLocation SpellingLoc)171 ZigClangSourceLocation SpellingLoc)
172{172{
173 StringRef s = reinterpret_cast<const clang::SourceManager *>(self)->getFilename(bitcast(SpellingLoc));173 llvm::StringRef s = reinterpret_cast<const clang::SourceManager *>(self)->getFilename(bitcast(SpellingLoc));
174 return (const char *)s.bytes_begin();174 return (const char *)s.bytes_begin();
175}175}
176176