aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Parse/ParseInit.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2024-06-12 13:14:26 -0700
committerGitHub <noreply@github.com>2024-06-12 13:14:26 -0700
commit682d461d5a231cee54d65910e6341769419a67d7 (patch)
tree1441fb2956b5f3c2f355d442c4de0508f5259a35 /clang/lib/Parse/ParseInit.cpp
parent294f3ce5dde916c358d8f672b4a1c706c0387154 (diff)
downloadllvm-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.cpp32
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();