https://github.com/llvm-beanz created https://github.com/llvm/llvm-project/pull/128250
We do handle EmptyDecls in codegen already as of #124886, but we were blocking them in Sema. EmptyDecls tend to be caused by extra semicolons which are not illegal. Fixes #128238 >From 98d8a84c508d743cb366db7a16b2b813f0c595d0 Mon Sep 17 00:00:00 2001 From: Chris Bieneman <chris.biene...@me.com> Date: Fri, 21 Feb 2025 17:47:12 -0600 Subject: [PATCH] [HLSL] Allow EmptyDecl in cbuffer/tbuffer We do handle EmptyDecls in codegen already as of #124886, but we were blocking them in Sema. EmptyDecls tend to be caused by extra semicolons which are not illegal. Fixes #128238 --- clang/lib/Parse/ParseHLSL.cpp | 2 +- clang/test/SemaHLSL/cb_error.hlsl | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/clang/lib/Parse/ParseHLSL.cpp b/clang/lib/Parse/ParseHLSL.cpp index 443bf2b9ec626..612e1ab0084ff 100644 --- a/clang/lib/Parse/ParseHLSL.cpp +++ b/clang/lib/Parse/ParseHLSL.cpp @@ -30,7 +30,7 @@ static bool validateDeclsInsideHLSLBuffer(Parser::DeclGroupPtrTy DG, // Only allow function, variable, record decls inside HLSLBuffer. for (DeclGroupRef::iterator I = Decls.begin(), E = Decls.end(); I != E; ++I) { Decl *D = *I; - if (isa<CXXRecordDecl, RecordDecl, FunctionDecl, VarDecl>(D)) + if (isa<CXXRecordDecl, RecordDecl, FunctionDecl, VarDecl, EmptyDecl>(D)) continue; // FIXME: support nested HLSLBuffer and namespace inside HLSLBuffer. diff --git a/clang/test/SemaHLSL/cb_error.hlsl b/clang/test/SemaHLSL/cb_error.hlsl index 133adeeb2068b..95c917a9bb9ee 100644 --- a/clang/test/SemaHLSL/cb_error.hlsl +++ b/clang/test/SemaHLSL/cb_error.hlsl @@ -47,3 +47,15 @@ tbuffer B { // expected-error@+1 {{unknown type name 'flaot'}} flaot f; } + +// None of these should produce an error! +cbuffer EmptyCBuffer {} + +cbuffer EmptyDeclCBuffer { + ; +} + +cbuffer EmptyDecl2CBuffer { + ; + int X; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits