summaryrefslogtreecommitdiff
path: root/lib/codegen/include/code_gen/CGdebug.h
blob: cf72c365cf0cf1174717e51785968b3f377f2c2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef CGDEBUG_H
#define CGDEBUG_H

#include <libgen.h>
#include <string.h>
#include <stdlib.h>

#ifndef NDEBUG // means that CMAKE_BUILD_TYPE=Debug
#define DEBUGCODEGEN
#endif
// This thing below potentially create leaks
#define FILENAME basename(strdup(__FILE__))

#ifdef DEBUGCODEGEN
#define CG_DEBUG_PRINT(format,args...) fprintf(stderr,"%15s | %15s | LN%-4d:\t" format,FILENAME,__FUNCTION__, \
        __LINE__, ##args )
#define CG_DEBUG_BEGIN   { \
                                fprintf(stderr,"=========\t%15s, %15s, LN%-4d\t=========\n",FILENAME,__FUNCTION__,__LINE__);
#define CG_DEBUG_END     fprintf(stderr,"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");}
#else
#define CG_DEBUG_PRINT(format,args...) do {} while(0) /* Don't do anything  */
#define CG_DEBUG_BEGIN   while(0) {
#define CG_DEBUG_END     }
#endif

// TODO below should be substituted by some error throwing? to be more consistent with cpp style
#define CG_ERROR(format,args...) fprintf(stderr,"ERROR:\t%s, %s, LN%d:\t" format,FILENAME,__FUNCTION__, \
        __LINE__, ##args )


#endif