[all-commits] [llvm/llvm-project] 2acf77: [clang] Update argument checking tablegen code to ...

Mike Rice via All-commits all-commits at lists.llvm.org
Tue Jul 30 10:07:38 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2acf77f987331c05520c5bfd849326909ffce983
      https://github.com/llvm/llvm-project/commit/2acf77f987331c05520c5bfd849326909ffce983
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/AttributeCommonInfo.h
    M clang/lib/Basic/Attributes.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/test/SemaHLSL/Loops/unroll.hlsl
    A clang/test/TableGen/attrs-parser-string-switches.td
    M clang/utils/TableGen/ClangAttrEmitter.cpp

  Log Message:
  -----------
  [clang] Update argument checking tablegen code to use a 'full' name (#99993)

In 92fc1eb0c1ae3813f2ac9208e2c74207aae9d23 the HLSLLoopHint attribute
was added with an 'unroll' spelling. There is an existing LoopHint
attribute with the same spelling. These attributes have different
arguments.

The tablegen used to produce checks on arguments uses only the attribute
name, making it impossible to return correct info for attribute with
different argument types but the same name.

Improve the situation by using a 'full' name that combines the syntax,
scope, and name. This allows, for example, #pragma unroll and
[[unroll(x)]] to coexist correctly even with different argument types.

Also fix a bug in the StrictEnumParameters tablegen. If will now
correctly specify each parameter instead of only the first.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list