33#ifdef JUCE_FORCE_DEBUG
43 #define JUCE_CALLTYPE __stdcall
44 #define JUCE_CDECL __cdecl
53#ifndef JUCE_LOG_CURRENT_ASSERTION
54 #if JUCE_LOG_ASSERTIONS || JUCE_DEBUG
55 #define JUCE_LOG_CURRENT_ASSERTION juce::logAssertion (__FILE__, __LINE__);
57 #define JUCE_LOG_CURRENT_ASSERTION
62#if JUCE_IOS || JUCE_LINUX || JUCE_BSD
68 #define JUCE_BREAK_IN_DEBUGGER { ::kill (0, SIGTRAP); }
70 #ifndef __INTEL_COMPILER
71 #pragma intrinsic (__debugbreak)
73 #define JUCE_BREAK_IN_DEBUGGER { __debugbreak(); }
74#elif JUCE_INTEL && (JUCE_GCC || JUCE_CLANG || JUCE_MAC)
75 #if JUCE_NO_INLINE_ASM
76 #define JUCE_BREAK_IN_DEBUGGER { }
78 #define JUCE_BREAK_IN_DEBUGGER { asm ("int $3"); }
80#elif JUCE_ARM && JUCE_MAC
81 #define JUCE_BREAK_IN_DEBUGGER { __builtin_debugtrap(); }
83 #define JUCE_BREAK_IN_DEBUGGER { __builtin_trap(); }
85 #define JUCE_BREAK_IN_DEBUGGER { __asm int 3 }
88#if JUCE_CLANG && defined (__has_feature) && ! defined (JUCE_ANALYZER_NORETURN)
89 #if __has_feature (attribute_analyzer_noreturn)
90 inline void __attribute__((analyzer_noreturn)) juce_assert_noreturn() {}
91 #define JUCE_ANALYZER_NORETURN juce::juce_assert_noreturn();
95#ifndef JUCE_ANALYZER_NORETURN
96 #define JUCE_ANALYZER_NORETURN
104 #if __has_cpp_attribute(clang::fallthrough)
105 #define JUCE_FALLTHROUGH [[clang::fallthrough]];
107 #define JUCE_FALLTHROUGH
111 #define JUCE_FALLTHROUGH [[gnu::fallthrough]];
113 #define JUCE_FALLTHROUGH
116 #define JUCE_FALLTHROUGH
120#if JUCE_MSVC && ! defined (DOXYGEN)
121 #define JUCE_BLOCK_WITH_FORCED_SEMICOLON(x) \
122 __pragma(warning(push)) \
123 __pragma(warning(disable:4127)) \
124 do { x } while (false) \
125 __pragma(warning(pop))
130 #define JUCE_BLOCK_WITH_FORCED_SEMICOLON(x) do { x } while (false)
134#if (JUCE_DEBUG && ! JUCE_DISABLE_ASSERTIONS) || DOXYGEN
145 #define DBG(textToWrite) JUCE_BLOCK_WITH_FORCED_SEMICOLON (juce::String tempDbgBuf; tempDbgBuf << textToWrite; juce::Logger::outputDebugString (tempDbgBuf);)
152 #define jassertfalse JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
162 #define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
170 #define jassertquiet(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
176 #define DBG(textToWrite)
177 #define jassertfalse JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION)
179 #if JUCE_LOG_ASSERTIONS
180 #define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
181 #define jassertquiet(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
183 #define jassert(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON ( ; )
184 #define jassertquiet(expression) JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (false) (void) (expression);)
191 #define JUCE_JOIN_MACRO_HELPER(a, b) a ## b
192 #define JUCE_STRINGIFY_MACRO_HELPER(a) #a
199#define JUCE_JOIN_MACRO(item1, item2) JUCE_JOIN_MACRO_HELPER (item1, item2)
202#define JUCE_STRINGIFY(item) JUCE_STRINGIFY_MACRO_HELPER (item)
230#define JUCE_DECLARE_NON_COPYABLE(className) \
231 className (const className&) = delete;\
232 className& operator= (const className&) = delete;
237#define JUCE_DECLARE_NON_MOVEABLE(className) \
238 className (className&&) = delete;\
239 className& operator= (className&&) = delete;
244#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className) \
245 JUCE_DECLARE_NON_COPYABLE(className) \
246 JUCE_LEAK_DETECTOR(className)
251#define JUCE_PREVENT_HEAP_ALLOCATION \
253 static void* operator new (size_t) = delete; \
254 static void operator delete (void*) = delete;
257#if JUCE_MSVC && ! defined (DOXYGEN)
258 #define JUCE_WARNING_HELPER(file, line, mess) message(file "(" JUCE_STRINGIFY (line) ") : Warning: " #mess)
259 #define JUCE_COMPILER_WARNING(message) __pragma(JUCE_WARNING_HELPER (__FILE__, __LINE__, message))
262 #define JUCE_WARNING_HELPER(mess) message(#mess)
272 #define JUCE_COMPILER_WARNING(message) _Pragma(JUCE_STRINGIFY (JUCE_WARNING_HELPER (message)))
277#if JUCE_DEBUG || DOXYGEN
283 #define forcedinline inline
286 #define forcedinline __forceinline
288 #define forcedinline inline __attribute__((always_inline))
292#if JUCE_MSVC || DOXYGEN
295 #define JUCE_ALIGN(bytes) __declspec (align (bytes))
297 #define JUCE_ALIGN(bytes) __attribute__ ((aligned (bytes)))
301#if JUCE_ANDROID && ! defined (DOXYGEN)
302 #define JUCE_MODAL_LOOPS_PERMITTED 0
303#elif ! defined (JUCE_MODAL_LOOPS_PERMITTED)
306 #define JUCE_MODAL_LOOPS_PERMITTED 0
310#if JUCE_GCC || JUCE_CLANG
311 #define JUCE_PACKED __attribute__((packed))
312#elif ! defined (DOXYGEN)
317#if JUCE_GCC || DOXYGEN
320 #define JUCE_NO_ASSOCIATIVE_MATH_OPTIMISATIONS __attribute__((__optimize__("no-associative-math")))
322 #define JUCE_NO_ASSOCIATIVE_MATH_OPTIMISATIONS
__attribute__((naked, target("arm")))
Definition asm-nseel-arm-gcc.c:66
Definition carla_juce.cpp:31