From 78be04e4c672a3ffb9c92dbb172dbd16edce8941 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Wed, 22 Feb 2023 14:27:56 -0800 Subject: [PATCH] Add static assertion ensuring sizeof(ExprEvalStep) <= 64 bytes This was previously only documented in a comment. Given the size of the struct, it's not hard to miss that comment. As evidenced by the commits leading up to fe3caa14393, 67b26703b41. It's possible, but not likely, that we might have to weaken these assertions on a less commonly used architecture. Author: Tom Lane Discussion: https://postgr.es/m/295606.1677101684@sss.pgh.pa.us --- src/include/executor/execExpr.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/include/executor/execExpr.h b/src/include/executor/execExpr.h index 86e1ac1e65..06c3adc0a1 100644 --- a/src/include/executor/execExpr.h +++ b/src/include/executor/execExpr.h @@ -669,6 +669,10 @@ typedef struct ExprEvalStep } d; } ExprEvalStep; +/* Enforce the size rule given in the comment above */ +StaticAssertDecl(sizeof(ExprEvalStep) <= 64, + "size of ExprEvalStep exceeds 64 bytes"); + /* Non-inline data for container operations */ typedef struct SubscriptingRefState -- 2.39.5