diff --git a/tools/clang/lib/Sema/SemaHLSL.cpp b/tools/clang/lib/Sema/SemaHLSL.cpp index d831f51f09..f73a4d96bb 100644 --- a/tools/clang/lib/Sema/SemaHLSL.cpp +++ b/tools/clang/lib/Sema/SemaHLSL.cpp @@ -13134,7 +13134,7 @@ void Sema::DiagnoseGloballyCoherentMismatch(const Expr *SrcExpr, void ValidateDispatchGridValues(DiagnosticsEngine &Diags, const AttributeList &A, Attr *declAttr) { - unsigned x = 1, y = 1, z = 1; + unsigned long long int x = 1, y = 1, z = 1; if (HLSLNodeDispatchGridAttr *pA = dyn_cast(declAttr)) { x = pA->getX(); diff --git a/tools/clang/test/SemaHLSL/attributes/overflow_node_dispatch_grid.hlsl b/tools/clang/test/SemaHLSL/attributes/overflow_node_dispatch_grid.hlsl new file mode 100644 index 0000000000..767ed72a74 --- /dev/null +++ b/tools/clang/test/SemaHLSL/attributes/overflow_node_dispatch_grid.hlsl @@ -0,0 +1,7 @@ +// RUN: %dxc -T lib_6_8 -verify %s + +[Shader("node")] +[NodeLaunch("broadcasting")] +[NodeDispatchGrid(65535, 65535, 65535)] // expected-error {{'NodeDispatchGrid' X * Y * Z product may not exceed 16,777,215 (2^24-1)}} +[NumThreads(1, 1, 1)] +void myNode() { } \ No newline at end of file