From 295172ef51c6b9a73bc0fdcfd25f8c41ead9034a Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Thu, 10 Feb 2022 11:56:14 -0800 Subject: [OpaquePtr][LLParser] Automatically detect opaque pointers in .ll files This allows us to not have to specify -opaque-pointers when updating IR tests from typed pointers to opaque pointers. We detect opaque pointers in .ll files by looking for relevant tokens, either "ptr" or "*". Reviewed By: #opaque-pointers, nikic Differential Revision: https://reviews.llvm.org/D119482 --- llvm/lib/AsmParser/LLLexer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/lib/AsmParser/LLLexer.cpp') diff --git a/llvm/lib/AsmParser/LLLexer.cpp b/llvm/lib/AsmParser/LLLexer.cpp index 6048066..8aac5a6 100644 --- a/llvm/lib/AsmParser/LLLexer.cpp +++ b/llvm/lib/AsmParser/LLLexer.cpp @@ -860,7 +860,10 @@ lltok::Kind LLLexer::LexIdentifier() { TYPEKEYWORD("token", Type::getTokenTy(Context)); if (Keyword == "ptr") { - if (Context.supportsTypedPointers()) { + // enableOpaquePointers() must be called before creating any pointer types. + if (!Context.hasSetOpaquePointersValue()) { + Context.enableOpaquePointers(); + } else if (Context.supportsTypedPointers()) { Warning("ptr type is only supported in -opaque-pointers mode"); return lltok::Error; } -- cgit v1.1