diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2022-07-03 14:10:23 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2022-07-03 14:10:23 +0000 |
commit | 145449b1e420787bb99721a429341fa6be3adfb6 (patch) | |
tree | 1d56ae694a6de602e348dd80165cf881a36600ed /llvm/lib/AsmParser/LLLexer.cpp | |
parent | ecbca9f5fb7d7613d2b94982c4825eb0d33d6842 (diff) |
Diffstat (limited to 'llvm/lib/AsmParser/LLLexer.cpp')
-rw-r--r-- | llvm/lib/AsmParser/LLLexer.cpp | 94 |
1 files changed, 15 insertions, 79 deletions
diff --git a/llvm/lib/AsmParser/LLLexer.cpp b/llvm/lib/AsmParser/LLLexer.cpp index e3bf41c9721b..30e6f8599208 100644 --- a/llvm/lib/AsmParser/LLLexer.cpp +++ b/llvm/lib/AsmParser/LLLexer.cpp @@ -567,7 +567,6 @@ lltok::Kind LLLexer::LexIdentifier() { KEYWORD(exact); KEYWORD(inbounds); KEYWORD(inrange); - KEYWORD(align); KEYWORD(addrspace); KEYWORD(section); KEYWORD(partition); @@ -576,12 +575,16 @@ lltok::Kind LLLexer::LexIdentifier() { KEYWORD(module); KEYWORD(asm); KEYWORD(sideeffect); - KEYWORD(alignstack); KEYWORD(inteldialect); KEYWORD(gc); KEYWORD(prefix); KEYWORD(prologue); + KEYWORD(no_sanitize_address); + KEYWORD(no_sanitize_hwaddress); + KEYWORD(no_sanitize_memtag); + KEYWORD(sanitize_address_dyninit); + KEYWORD(ccc); KEYWORD(fastcc); KEYWORD(coldcc); @@ -632,82 +635,13 @@ lltok::Kind LLLexer::LexIdentifier() { KEYWORD(c); KEYWORD(attributes); + KEYWORD(sync); + KEYWORD(async); - KEYWORD(alwaysinline); - KEYWORD(allocsize); - KEYWORD(argmemonly); - KEYWORD(builtin); - KEYWORD(byval); - KEYWORD(inalloca); - KEYWORD(cold); - KEYWORD(convergent); - KEYWORD(dereferenceable); - KEYWORD(dereferenceable_or_null); - KEYWORD(disable_sanitizer_instrumentation); - KEYWORD(elementtype); - KEYWORD(inaccessiblememonly); - KEYWORD(inaccessiblemem_or_argmemonly); - KEYWORD(inlinehint); - KEYWORD(inreg); - KEYWORD(jumptable); - KEYWORD(minsize); - KEYWORD(naked); - KEYWORD(nest); - KEYWORD(noalias); - KEYWORD(nobuiltin); - KEYWORD(nocallback); - KEYWORD(nocapture); - KEYWORD(noduplicate); - KEYWORD(nofree); - KEYWORD(noimplicitfloat); - KEYWORD(noinline); - KEYWORD(norecurse); - KEYWORD(nonlazybind); - KEYWORD(nomerge); - KEYWORD(nonnull); - KEYWORD(noprofile); - KEYWORD(noredzone); - KEYWORD(noreturn); - KEYWORD(nosync); - KEYWORD(nocf_check); - KEYWORD(noundef); - KEYWORD(nounwind); - KEYWORD(nosanitize_coverage); - KEYWORD(null_pointer_is_valid); - KEYWORD(optforfuzzing); - KEYWORD(optnone); - KEYWORD(optsize); - KEYWORD(preallocated); - KEYWORD(readnone); - KEYWORD(readonly); - KEYWORD(returned); - KEYWORD(returns_twice); - KEYWORD(signext); - KEYWORD(speculatable); - KEYWORD(sret); - KEYWORD(ssp); - KEYWORD(sspreq); - KEYWORD(sspstrong); - KEYWORD(strictfp); - KEYWORD(safestack); - KEYWORD(shadowcallstack); - KEYWORD(sanitize_address); - KEYWORD(sanitize_hwaddress); - KEYWORD(sanitize_memtag); - KEYWORD(sanitize_thread); - KEYWORD(sanitize_memory); - KEYWORD(speculative_load_hardening); - KEYWORD(swifterror); - KEYWORD(swiftself); - KEYWORD(swiftasync); - KEYWORD(uwtable); - KEYWORD(vscale_range); - KEYWORD(willreturn); - KEYWORD(writeonly); - KEYWORD(zeroext); - KEYWORD(immarg); - KEYWORD(byref); - KEYWORD(mustprogress); +#define GET_ATTR_NAMES +#define ATTRIBUTE_ENUM(ENUM_NAME, DISPLAY_NAME) \ + KEYWORD(DISPLAY_NAME); +#include "llvm/IR/Attributes.inc" KEYWORD(type); KEYWORD(opaque); @@ -781,7 +715,6 @@ lltok::Kind LLLexer::LexIdentifier() { KEYWORD(param); KEYWORD(hotness); KEYWORD(unknown); - KEYWORD(hot); KEYWORD(critical); KEYWORD(relbf); KEYWORD(variable); @@ -856,7 +789,10 @@ lltok::Kind LLLexer::LexIdentifier() { TYPEKEYWORD("token", Type::getTokenTy(Context)); if (Keyword == "ptr") { - if (Context.supportsTypedPointers()) { + // setOpaquePointers() must be called before creating any pointer types. + if (!Context.hasSetOpaquePointersValue()) { + Context.setOpaquePointers(true); + } else if (Context.supportsTypedPointers()) { Warning("ptr type is only supported in -opaque-pointers mode"); return lltok::Error; } |