Mercurial > projects > ldc
annotate gen/logger.h @ 1396:24b33fdc7c0c
Install ldmd too.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Tue, 19 May 2009 16:40:37 +0200 |
parents | 229e02867307 |
children | 2292878925f4 |
rev | line source |
---|---|
1 | 1 #ifndef _llvmd_gen_logger_h_ |
2 #define _llvmd_gen_logger_h_ | |
3 | |
994
18ad5601dff7
Use LLVM OStream wrapper instead of <iostream> in the logger.
Frits van Bommel <fvbommel wxs.nl>
parents:
132
diff
changeset
|
4 #include "llvm/Support/Streams.h" |
1 | 5 |
1372
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
6 #ifndef IS_PRINTF |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
7 # ifdef __GNUC__ |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
8 # define IS_PRINTF(FMTARG) __attribute((__format__ (__printf__, (FMTARG), (FMTARG)+1) )) |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
9 # else |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
10 # define IS_PRINTF(FMTARG) |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
11 # endif |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
12 #endif |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
13 |
132 | 14 struct Loc; |
15 | |
1 | 16 namespace Logger |
17 { | |
18 void indent(); | |
19 void undent(); | |
994
18ad5601dff7
Use LLVM OStream wrapper instead of <iostream> in the logger.
Frits van Bommel <fvbommel wxs.nl>
parents:
132
diff
changeset
|
20 llvm::OStream cout(); |
1372
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
21 void println(const char* fmt, ...) IS_PRINTF(1); |
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
22 void print(const char* fmt, ...) IS_PRINTF(1); |
38
27b2f40bdb58
[svn r42] Disabled the extensive logging by default. Use the -vv flag to get it back.
lindquist
parents:
1
diff
changeset
|
23 void enable(); |
27b2f40bdb58
[svn r42] Disabled the extensive logging by default. Use the -vv flag to get it back.
lindquist
parents:
1
diff
changeset
|
24 void disable(); |
131 | 25 bool enabled(); |
94
61615fa85940
[svn r98] Added support for std.c.stdlib.alloca via pragma(LLVM_internal, "alloca").
lindquist
parents:
38
diff
changeset
|
26 |
1372
229e02867307
Fix format-string bugs by adding __attribute__((__format__)) in all applicable
Frits van Bommel <fvbommel wxs.nl>
parents:
1228
diff
changeset
|
27 void attention(Loc loc, const char* fmt, ...) IS_PRINTF(2); |
1 | 28 |
29 struct LoggerScope | |
30 { | |
31 LoggerScope() | |
32 { | |
33 Logger::indent(); | |
34 } | |
35 ~LoggerScope() | |
36 { | |
37 Logger::undent(); | |
38 } | |
39 }; | |
40 } | |
41 | |
42 #define LOG_SCOPE Logger::LoggerScope _logscope; | |
38
27b2f40bdb58
[svn r42] Disabled the extensive logging by default. Use the -vv flag to get it back.
lindquist
parents:
1
diff
changeset
|
43 |
1228
79758fd2f48a
Added Doxygen file.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents:
1124
diff
changeset
|
44 #define IF_LOG if (Logger::enabled()) |
79758fd2f48a
Added Doxygen file.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents:
1124
diff
changeset
|
45 |
1 | 46 #endif |
47 |