From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Santos Subject: [PATCH 0/10] Cleanup & new features for compiler*.h and bug.h Date: Fri, 28 Sep 2012 18:20:01 -0500 Message-ID: <1348874411-28288-1-git-send-email-daniel.santos@pobox.com> Return-path: Received: from nm10.bullet.mail.sp2.yahoo.com ([98.139.91.80]:25583 "HELO nm10.bullet.mail.sp2.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1758514Ab2I1XU2 (ORCPT ); Fri, 28 Sep 2012 19:20:28 -0400 Sender: linux-sparse-owner@vger.kernel.org List-Id: linux-sparse@vger.kernel.org To: LKML , Andi Kleen , Andrea Arcangeli , Andrew Morton , Christopher Li , Daniel Santos , David Daney , David Howells , Joe Perches , Konstantin Khlebnikov , linux-sparse@vger.kernel.org, Michel Lespinasse , Paul Gortmaker , Pavel Pisa , Peter Zijlstra , Steven Rostedt This patch set is a dependency of the generic red-black tree patch set, which I have now split up into three smaller sets. The major aim of this patch set is to cleanup compiler-gcc*.h and improve the manageability of of compiler features at various versions (when they are broken, etc.), and to add some needed features to bug.h (again, that are compiler-version-dependent). compiler-gcc*.h o Introduce GCC_VERSION - (e.g., gcc 4.7.1 becomes 40701) o Reorder all features based upon the version introduced (readability) o Change all version checks to use GCC_VERSION o Remove redundant __linktime_error o Introduce __flatten function attribute bug.h o Improve BUILD_BUG_ON(expr) - now generates compile-time error post-gcc-4.4 o Introduce BUILD_BUG_ON_NON_CONST(expr) macro, which simply wraps __builtin_constant_p and BUILD_BUG_ON o Documented (in BUILD_BUG_ON_NON_CONST doc-comments) the extensive discrepancies in the behavior of __builtin_constant_p throughout versions of gcc. o Introduce BUILD_BUG_ON_NON_CONST42 macro for compile-time-constant checks that are doomed to fail in older versions of gcc.