aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
diff options
context:
space:
mode:
authorJoshua Batista <jbatista@microsoft.com>2024-06-28 01:53:54 -0700
committerGitHub <noreply@github.com>2024-06-28 01:53:54 -0700
commitc50ef30cce32b8e864b90a4ca27c68882d46a19c (patch)
treea972574e52264b8fe6c7d7d618b2248b47383647 /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
parentafa3d58ee2224f1037116f4cab44a23bd232a416 (diff)
downloadllvm-c50ef30cce32b8e864b90a4ca27c68882d46a19c.zip
llvm-c50ef30cce32b8e864b90a4ca27c68882d46a19c.tar.gz
llvm-c50ef30cce32b8e864b90a4ca27c68882d46a19c.tar.bz2
[ParserHLSL] Attempt to parse HLSL annotations on Field Decls. (#96346)
`MaybeParseHLSLAnnotations` should be run on Field Decls instead of just assuming that any colon after a field decl is a bitfield. In the case that HLSL is the language, the code after the colon may be an annotation. This PR gives the parser a chance to parse the subsequent text as if it was an HLSL annotation. The burden of parsing is now on the HLSL parser, but the actual work needs to be done in handling every case of an hlsl annotation on a field decl. SV_DispatchThreadID was straightforward enough to implement in this PR, and tests have been added that the annotation appears as an attribute in the AST. Previously, the `hlsl_annotations_on_struct_members.hlsl` test would result in an error shown below on the line that declares variable `a` in struct Eg9: error: use of undeclared identifier 'SV_DispatchThreadID' This is because the annotation is parsed as if it was a c++ bit field, and an identifier that represents an integer is expected, but not found. This test ensures that hlsl annotations are parsed when parsing struct decls. This test not only ensures we make progress by moving the validation error from the realm of C++ and expecting bitfields, to HLSL and a specialized error for the recognized annotation, but also validates that the parser does parse the annotation and adds an attribute to the field decl in the AST. Fixes https://github.com/llvm/llvm-project/issues/57889
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions