[all-commits] [llvm/llvm-project] 4fad11: [HLSL][RootSignature] Implement initial parsing of...

Finn Plummer via All-commits all-commits at lists.llvm.org
Tue Apr 22 11:46:30 PDT 2025


  Branch: refs/heads/users/inbelic/pr-136740
  Home:   https://github.com/llvm/llvm-project
  Commit: 4fad116f1dbc94d7c14acbbde3885bc126e22981
      https://github.com/llvm/llvm-project/commit/4fad116f1dbc94d7c14acbbde3885bc126e22981
  Author: Finn Plummer <canadienfinn at gmail.com>
  Date:   2025-04-22 (Tue, 22 Apr 2025)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/include/clang/Parse/ParseHLSLRootSignature.h
    M clang/lib/Parse/ParseHLSLRootSignature.cpp
    M clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
    M llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h

  Log Message:
  -----------
  [HLSL][RootSignature] Implement initial parsing of the descriptor table clause params (#133800)

- Defines `ParseDescriptorTableClauseParams` to establish the pattern of
how we will parse parameters in root signatures. Namely, to use
recursive descent parsing in a way that follows closely to the EBNF
notation definition in the root signature spec.

- Implements parsing of two param types: `UInt32` and `Register` to
demonstrate the parsing implementation and allow for unit testing

- Changes the calling convention to use `std::optional` return values
instead of boolean error returns and parameters by reference

Part two of implementing:
https://github.com/llvm/llvm-project/issues/126569

---------

Co-authored-by: Finn Plummer <finnplummer at microsoft.com>


  Commit: 41d861ca293e978ebbf1b67e722a89d92ef6d710
      https://github.com/llvm/llvm-project/commit/41d861ca293e978ebbf1b67e722a89d92ef6d710
  Author: Finn Plummer <finnplummer at microsoft.com>
  Date:   2025-04-22 (Tue, 22 Apr 2025)

  Changed paths:
    M clang/include/clang/Parse/ParseHLSLRootSignature.h
    M clang/lib/Parse/ParseHLSLRootSignature.cpp
    M clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
    M llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h

  Log Message:
  -----------
  reland-fix: Remove name shadowing of `Register`

We have that for the following program:

```
struct Foo {
  int X = 0;
};

struct Bar {
  struct Foo Foo;
}
```

will generate the following when compiled with gcc/g++:
`error: declaration of ‘Foo Bar::Foo’ changes meaning of ‘Foo’ [-fpermissive]`

but no error is generated when compiling with clang/clang++.

This commit removes the name shadowing of Register to prevent compilation
errors when building llvm with gcc/g++.


Compare: https://github.com/llvm/llvm-project/compare/4fad116f1dbc%5E...41d861ca293e

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