1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4//*****************************************************************************
5// DebugMacrosExt.h
6//
7// Simple debugging macros that take no dependencies on CLR headers.
8// This header can be used from outside the CLR.
9//
10//*****************************************************************************
11
12#ifndef __DebugMacrosExt_h__
13#define __DebugMacrosExt_h__
14
15#if !defined(_DEBUG_IMPL) && defined(_DEBUG) && !defined(DACCESS_COMPILE)
16#define _DEBUG_IMPL 1
17#endif
18
19#ifdef _DEBUG
20// A macro to execute a statement only in _DEBUG.
21#define DEBUG_STMT(stmt) stmt
22#define INDEBUG(x) x
23#define INDEBUG_COMMA(x) x,
24#define COMMA_INDEBUG(x) ,x
25#define NOT_DEBUG(x)
26#else
27#define DEBUG_STMT(stmt)
28#define INDEBUG(x)
29#define INDEBUG_COMMA(x)
30#define COMMA_INDEBUG(x)
31#define NOT_DEBUG(x) x
32#endif
33
34
35#ifdef _DEBUG_IMPL
36#define INDEBUGIMPL(x) x
37#define INDEBUGIMPL_COMMA(x) x,
38#define COMMA_INDEBUGIMPL(x) ,x
39#else
40#define INDEBUGIMPL(x)
41#define INDEBUGIMPL_COMMA(x)
42#define COMMA_INDEBUGIMPL(x)
43#endif
44
45
46#endif
47