diff options
| author | kcbanner <kcbanner@gmail.com> | 2023-04-22 02:11:16 -0400 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2023-04-23 21:45:08 +0300 |
| commit | 42ee364e7b698822a69cba4cd2bda17868657e05 (patch) | |
| tree | 4a69da6479fb97502dc83794e5d745e1fe3eb053 /src/zig_clang.cpp | |
| parent | bc8e1e1de4a2f22c56528240d320f682f1ec4b69 (diff) | |
| download | zig-42ee364e7b698822a69cba4cd2bda17868657e05.tar.gz zig-42ee364e7b698822a69cba4cd2bda17868657e05.zip | |
translate-c: support brace-enclosed string initializers (c++20 9.4.2.1)
Diffstat (limited to 'src/zig_clang.cpp')
| -rw-r--r-- | src/zig_clang.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/zig_clang.cpp b/src/zig_clang.cpp index ccc4453cdf..699431009f 100644 --- a/src/zig_clang.cpp +++ b/src/zig_clang.cpp @@ -2382,6 +2382,12 @@ bool ZigClangExpr_EvaluateAsConstantExpr(const ZigClangExpr *self, ZigClangExprE return true; } +const ZigClangStringLiteral *ZigClangExpr_castToStringLiteral(const struct ZigClangExpr *self) { + auto casted_self = reinterpret_cast<const clang::Expr *>(self); + auto cast = clang::dyn_cast<const clang::StringLiteral>(casted_self); + return reinterpret_cast<const ZigClangStringLiteral *>(cast); +} + const ZigClangExpr *ZigClangInitListExpr_getInit(const ZigClangInitListExpr *self, unsigned i) { auto casted = reinterpret_cast<const clang::InitListExpr *>(self); const clang::Expr *result = casted->getInit(i); @@ -2394,6 +2400,16 @@ const ZigClangExpr *ZigClangInitListExpr_getArrayFiller(const ZigClangInitListEx return reinterpret_cast<const ZigClangExpr *>(result); } +bool ZigClangInitListExpr_hasArrayFiller(const ZigClangInitListExpr *self) { + auto casted = reinterpret_cast<const clang::InitListExpr *>(self); + return casted->hasArrayFiller(); +} + +bool ZigClangInitListExpr_isStringLiteralInit(const ZigClangInitListExpr *self) { + auto casted = reinterpret_cast<const clang::InitListExpr *>(self); + return casted->isStringLiteralInit(); +} + const ZigClangFieldDecl *ZigClangInitListExpr_getInitializedFieldInUnion(const ZigClangInitListExpr *self) { auto casted = reinterpret_cast<const clang::InitListExpr *>(self); const clang::FieldDecl *result = casted->getInitializedFieldInUnion(); |
