aboutsummaryrefslogtreecommitdiff
path: root/src/zig_clang.cpp
diff options
context:
space:
mode:
authorkcbanner <kcbanner@gmail.com>2023-04-22 02:11:16 -0400
committerVeikka Tuominen <git@vexu.eu>2023-04-23 21:45:08 +0300
commit42ee364e7b698822a69cba4cd2bda17868657e05 (patch)
tree4a69da6479fb97502dc83794e5d745e1fe3eb053 /src/zig_clang.cpp
parentbc8e1e1de4a2f22c56528240d320f682f1ec4b69 (diff)
downloadzig-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.cpp16
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();