1 // Copyright 2016 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_ALLOCATOR_ALLOCATOR_SHIM_INTERNALS_H_ 6 #define BASE_ALLOCATOR_ALLOCATOR_SHIM_INTERNALS_H_ 7 8 #if defined(__GNUC__) 9 10 #include <sys/cdefs.h> // for __THROW 11 12 #ifndef __THROW // Not a glibc system 13 #ifdef _NOEXCEPT // LLVM libc++ uses noexcept instead 14 #define __THROW _NOEXCEPT 15 #else 16 #define __THROW 17 #endif // !_NOEXCEPT 18 #endif 19 20 // Shim layer symbols need to be ALWAYS exported, regardless of component build. 21 #define SHIM_ALWAYS_EXPORT __attribute__((visibility("default"))) 22 23 #define SHIM_ALIAS_SYMBOL(fn) __attribute__((alias(#fn))) 24 25 #endif // __GNUC__ 26 27 #endif // BASE_ALLOCATOR_ALLOCATOR_SHIM_INTERNALS_H_ 28