diff options
author | Vitaly Buka <vitalybuka@google.com> | 2024-06-12 13:14:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-12 13:14:26 -0700 |
commit | 682d461d5a231cee54d65910e6341769419a67d7 (patch) | |
tree | 1441fb2956b5f3c2f355d442c4de0508f5259a35 /clang/lib/Parse/ParseInit.cpp | |
parent | 294f3ce5dde916c358d8f672b4a1c706c0387154 (diff) | |
download | llvm-682d461d5a231cee54d65910e6341769419a67d7.zip llvm-682d461d5a231cee54d65910e6341769419a67d7.tar.gz llvm-682d461d5a231cee54d65910e6341769419a67d7.tar.bz2 |
Revert "✨ [Sema, Lex, Parse] Preprocessor embed in C and C++ (and Obj-C and Obj-C++ by-proxy)" (#95299)
Reverts llvm/llvm-project#68620
Introduce or expose a memory leak and UB, see llvm/llvm-project#68620
Diffstat (limited to 'clang/lib/Parse/ParseInit.cpp')
-rw-r--r-- | clang/lib/Parse/ParseInit.cpp | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/clang/lib/Parse/ParseInit.cpp b/clang/lib/Parse/ParseInit.cpp index cd11f90..432ddc7 100644 --- a/clang/lib/Parse/ParseInit.cpp +++ b/clang/lib/Parse/ParseInit.cpp @@ -428,36 +428,6 @@ ExprResult Parser::ParseInitializerWithPotentialDesignator( return ExprError(); } -ExprResult Parser::createEmbedExpr() { - assert(Tok.getKind() == tok::annot_embed); - EmbedAnnotationData *Data = - reinterpret_cast<EmbedAnnotationData *>(Tok.getAnnotationValue()); - ExprResult Res; - ASTContext &Context = Actions.getASTContext(); - SourceLocation StartLoc = ConsumeAnnotationToken(); - if (Data->BinaryData.size() == 1) { - Res = IntegerLiteral::Create(Context, - llvm::APInt(CHAR_BIT, Data->BinaryData.back()), - Context.UnsignedCharTy, StartLoc); - } else { - auto CreateStringLiteralFromStringRef = [&](StringRef Str, QualType Ty) { - llvm::APSInt ArraySize = - Context.MakeIntValue(Str.size(), Context.getSizeType()); - QualType ArrayTy = Context.getConstantArrayType( - Ty, ArraySize, nullptr, ArraySizeModifier::Normal, 0); - return StringLiteral::Create(Context, Str, StringLiteralKind::Ordinary, - false, ArrayTy, StartLoc); - }; - - StringLiteral *FileNameArg = - CreateStringLiteralFromStringRef(Data->FileName, Context.CharTy); - StringLiteral *BinaryDataArg = CreateStringLiteralFromStringRef( - Data->BinaryData, Context.UnsignedCharTy); - Res = Actions.ActOnEmbedExpr(StartLoc, FileNameArg, BinaryDataArg); - } - return Res; -} - /// ParseBraceInitializer - Called when parsing an initializer that has a /// leading open brace. /// @@ -531,8 +501,6 @@ ExprResult Parser::ParseBraceInitializer() { ExprResult SubElt; if (MayBeDesignationStart()) SubElt = ParseInitializerWithPotentialDesignator(DesignatorCompletion); - else if (Tok.getKind() == tok::annot_embed) - SubElt = createEmbedExpr(); else SubElt = ParseInitializer(); |