From patchwork Thu Oct 3 15:56:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hauke Mehrtens X-Patchwork-Id: 11173011 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9506614DB for ; Thu, 3 Oct 2019 17:42:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 724FC20830 for ; Thu, 3 Oct 2019 17:42:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388418AbfJCRmR (ORCPT ); Thu, 3 Oct 2019 13:42:17 -0400 Received: from mx2.mailbox.org ([80.241.60.215]:38374 "EHLO mx2.mailbox.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730927AbfJCP5X (ORCPT ); Thu, 3 Oct 2019 11:57:23 -0400 Received: from smtp2.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:105:465:1:1:0]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by mx2.mailbox.org (Postfix) with ESMTPS id BB1BEA3640; Thu, 3 Oct 2019 17:57:21 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp2.mailbox.org ([80.241.60.240]) by spamfilter05.heinlein-hosting.de (spamfilter05.heinlein-hosting.de [80.241.56.123]) (amavisd-new, port 10030) with ESMTP id VoutQ80boUGv; Thu, 3 Oct 2019 17:57:18 +0200 (CEST) From: Hauke Mehrtens To: backports@vger.kernel.org Cc: johannes@sipsolutions.net, Hauke Mehrtens Subject: [PATCH 03/11] backports: build_bug.h: Add static_assert() Date: Thu, 3 Oct 2019 17:56:34 +0200 Message-Id: <20191003155642.14909-4-hauke@hauke-m.de> In-Reply-To: <20191003155642.14909-1-hauke@hauke-m.de> References: <20191003155642.14909-1-hauke@hauke-m.de> MIME-Version: 1.0 Sender: backports-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: backports@vger.kernel.org Add static_assert() from upstream commit 6bab69c65013 ("build_bug.h: add wrapper for _Static_assert") which is used by rtw88. Signed-off-by: Hauke Mehrtens --- backport/backport-include/linux/build_bug.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/backport/backport-include/linux/build_bug.h b/backport/backport-include/linux/build_bug.h index 13ee5d6a..c883e525 100644 --- a/backport/backport-include/linux/build_bug.h +++ b/backport/backport-include/linux/build_bug.h @@ -7,4 +7,25 @@ #include #endif /* LINUX_VERSION_IS_GEQ(4,13,0) */ +#ifndef static_assert +/** + * static_assert - check integer constant expression at build time + * + * static_assert() is a wrapper for the C11 _Static_assert, with a + * little macro magic to make the message optional (defaulting to the + * stringification of the tested expression). + * + * Contrary to BUILD_BUG_ON(), static_assert() can be used at global + * scope, but requires the expression to be an integer constant + * expression (i.e., it is not enough that __builtin_constant_p() is + * true for expr). + * + * Also note that BUILD_BUG_ON() fails the build if the condition is + * true, while static_assert() fails the build if the expression is + * false. + */ +#define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr) +#define __static_assert(expr, msg, ...) _Static_assert(expr, msg) +#endif + #endif /* __BP_BUILD_BUG_H */