Sha256: a3c2a484d1cddc54ab8ed3702bad0910461c324e2f5ee168b23f8d0c69f84637

Contents?: true

Size: 1.24 KB

Versions: 61

Compression:

Stored size: 1.24 KB

Contents

/* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
#ifndef CCAN_BUILD_ASSERT_H
#define CCAN_BUILD_ASSERT_H

/**
 * CCAN_BUILD_ASSERT - assert a build-time dependency.
 * @cond: the compile-time condition which must be true.
 *
 * Your compile will fail if the condition isn't true, or can't be evaluated
 * by the compiler.  This can only be used within a function.
 *
 * Example:
 *	#include <stddef.h>
 *	...
 *	static char *foo_to_char(struct foo *foo)
 *	{
 *		// This code needs string to be at start of foo.
 *		CCAN_BUILD_ASSERT(offsetof(struct foo, string) == 0);
 *		return (char *)foo;
 *	}
 */
#define CCAN_BUILD_ASSERT(cond) \
	do { (void) sizeof(char [1 - 2*!(cond)]); } while(0)

/**
 * CCAN_BUILD_ASSERT_OR_ZERO - assert a build-time dependency, as an expression.
 * @cond: the compile-time condition which must be true.
 *
 * Your compile will fail if the condition isn't true, or can't be evaluated
 * by the compiler.  This can be used in an expression: its value is "0".
 *
 * Example:
 *	#define foo_to_char(foo)					\
 *		 ((char *)(foo)						\
 *		  + CCAN_BUILD_ASSERT_OR_ZERO(offsetof(struct foo, string) == 0))
 */
#define CCAN_BUILD_ASSERT_OR_ZERO(cond) \
	(sizeof(char [1 - 2*!(cond)]) - 1)

#endif /* CCAN_BUILD_ASSERT_H */

Version data entries

61 entries across 21 versions & 3 rubygems

Version Path
datadog-ruby_core_source-3.4.0 lib/datadog/ruby_core_source/ruby-3.4.0-p0/ccan/build_assert/build_assert.h
datadog-ruby_core_source-3.4.0 lib/datadog/ruby_core_source/ruby-3.3.5-p100/ccan/build_assert/build_assert.h
datadog-ruby_core_source-3.4.0 lib/datadog/ruby_core_source/ruby-3.3.0-p0/ccan/build_assert/build_assert.h
avalara_sdk-24.12.2 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-3.4.1/lib/debase/ruby_core_source/ruby-3.3.0-p0/ccan/build_assert/build_assert.h
avalara_sdk-24.12.2 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-0.10.16/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h
avalara_sdk-24.12.2 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-3.4.1/lib/debase/ruby_core_source/ruby-3.2.0-p0/ccan/build_assert/build_assert.h
avalara_sdk-24.12.2 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-3.4.1/lib/debase/ruby_core_source/ruby-3.4.0-p-1/ccan/build_assert/build_assert.h
avalara_sdk-24.12.2 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-3.4.1/lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.1 lib/debase/ruby_core_source/ruby-3.4.0-p-1/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.1 lib/debase/ruby_core_source/ruby-3.2.0-p0/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.1 lib/debase/ruby_core_source/ruby-3.3.0-p0/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.1 lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.0 lib/debase/ruby_core_source/ruby-3.4.0/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.0 lib/debase/ruby_core_source/ruby-3.3.0-p0/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.0 lib/debase/ruby_core_source/ruby-3.3.5-p100/ccan/build_assert/build_assert.h
debase-ruby_core_source-3.4.0 lib/debase/ruby_core_source/ruby-3.2.0-p0/ccan/build_assert/build_assert.h
avalara_sdk-24.12.1 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-0.10.16/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h
avalara_sdk-24.12.0 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-0.10.16/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h
avalara_sdk-24.12.0 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-3.3.6/lib/debase/ruby_core_source/ruby-3.2.0-p0/ccan/build_assert/build_assert.h
avalara_sdk-24.12.0 vendor/bundle/ruby/2.7.0/gems/debase-ruby_core_source-3.3.6/lib/debase/ruby_core_source/ruby-3.3.0-p0/ccan/build_assert/build_assert.h