From 3f12fcefa8182738c50594fb30cb27a11cc3bfdd Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Mon, 5 Dec 2011 11:25:48 -0500 Subject: [PATCH] Fix BUG_ON handling Signed-off-by: Mathieu Desnoyers --- include/lttng/align.h | 4 ++-- include/lttng/bug.h | 27 ++++++++++++++++++++------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/include/lttng/align.h b/include/lttng/align.h index 0a5363ea..28392682 100644 --- a/include/lttng/align.h +++ b/include/lttng/align.h @@ -36,7 +36,7 @@ */ #define offset_align(align_drift, alignment) \ ({ \ - BUILD_RUNTIME_BUG_ON((alignment) == 0 \ + LTTNG_BUILD_RUNTIME_BUG_ON((alignment) == 0 \ || ((alignment) & ((alignment) - 1))); \ (((alignment) - (align_drift)) & ((alignment) - 1)); \ }) @@ -51,7 +51,7 @@ */ #define offset_align_floor(align_drift, alignment) \ ({ \ - BUILD_RUNTIME_BUG_ON((alignment) == 0 \ + LTTNG_BUILD_RUNTIME_BUG_ON((alignment) == 0 \ || ((alignment) & ((alignment) - 1))); \ (((align_drift) - (alignment)) & ((alignment) - 1); \ }) diff --git a/include/lttng/bug.h b/include/lttng/bug.h index ebae9b74..d0e59800 100644 --- a/include/lttng/bug.h +++ b/include/lttng/bug.h @@ -2,7 +2,7 @@ #define _LTTNG_BUG_H /* - * lib/bug.h + * lttng/bug.h * * (C) Copyright 2010-2011 - Mathieu Desnoyers * @@ -14,14 +14,27 @@ * Permission to modify the code and to distribute modified code is granted, * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice. - * */ -#define BUILD_BUG_ON(condition) \ +#include +#include +#include + +#define LTTNG_BUG_ON(condition) \ + do { \ + if (caa_unlikely(condition)) { \ + fprintf(stderr, \ + "LTTng BUG in file %s, line %d.\n", \ + __FILE__, __LINE__); \ + exit(EXIT_FAILURE); \ + } \ + } while (0) + +#define LTTNG_BUILD_BUG_ON(condition) \ ((void) sizeof(char[-!!(condition)])) /** - * BUILD_RUNTIME_BUG_ON - check condition at build (if constant) or runtime + * LTTNG_BUILD_RUNTIME_BUG_ON - check condition at build (if constant) or runtime * @condition: the condition which should be false. * * If the condition is a constant and true, the compiler will generate a build @@ -29,12 +42,12 @@ * if the condition is ever true. If the condition is constant and false, no * code is emitted. */ -#define BUILD_RUNTIME_BUG_ON(condition) \ +#define LTTNG_BUILD_RUNTIME_BUG_ON(condition) \ do { \ if (__builtin_constant_p(condition)) \ - BUILD_BUG_ON(condition); \ + LTTNG_BUILD_BUG_ON(condition); \ else \ - BUG_ON(condition); \ + LTTNG_BUG_ON(condition); \ } while (0) #endif -- 2.34.1