You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
991 B
42 lines
991 B
// Copyright 2009 The RE2 Authors. All Rights Reserved. |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file. |
|
|
|
#ifndef UTIL_UTIL_H_ |
|
#define UTIL_UTIL_H_ |
|
|
|
#define arraysize(array) (sizeof(array)/sizeof((array)[0])) |
|
|
|
#ifndef ATTRIBUTE_NORETURN |
|
#if defined(__GNUC__) |
|
#define ATTRIBUTE_NORETURN __attribute__((noreturn)) |
|
#elif defined(_MSC_VER) |
|
#define ATTRIBUTE_NORETURN __declspec(noreturn) |
|
#else |
|
#define ATTRIBUTE_NORETURN |
|
#endif |
|
#endif |
|
|
|
#ifndef ATTRIBUTE_UNUSED |
|
#if defined(__GNUC__) |
|
#define ATTRIBUTE_UNUSED __attribute__((unused)) |
|
#else |
|
#define ATTRIBUTE_UNUSED |
|
#endif |
|
#endif |
|
|
|
#ifndef FALLTHROUGH_INTENDED |
|
#if defined(__clang__) |
|
#define FALLTHROUGH_INTENDED [[clang::fallthrough]] |
|
#elif defined(__GNUC__) && __GNUC__ >= 7 |
|
#define FALLTHROUGH_INTENDED [[gnu::fallthrough]] |
|
#else |
|
#define FALLTHROUGH_INTENDED do {} while (0) |
|
#endif |
|
#endif |
|
|
|
#ifndef NO_THREAD_SAFETY_ANALYSIS |
|
#define NO_THREAD_SAFETY_ANALYSIS |
|
#endif |
|
|
|
#endif // UTIL_UTIL_H_
|
|
|