File tree Expand file tree Collapse file tree 1 file changed +19
-1
lines changed
llvm/include/llvm/Support Expand file tree Collapse file tree 1 file changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,15 @@ namespace llvm {
29
29
#define DEBUGLOG_WITH_STREAM_AND_TYPE (STREAM, TYPE ) \
30
30
for (bool _c = (::llvm::DebugFlag && ::llvm::isCurrentDebugType(TYPE)); _c; \
31
31
_c = false ) \
32
- ::llvm::impl::LogWithNewline (TYPE, __FILE__, __LINE__, (STREAM))
32
+ ::llvm::impl::LogWithNewline ( \
33
+ TYPE, \
34
+ [] { \
35
+ /* Force constexpr eval */ \
36
+ constexpr const char *filename = \
37
+ ::llvm::impl::LogWithNewline::getFileName (__FILE__); \
38
+ return filename; \
39
+ }(), \
40
+ __LINE__, (STREAM))
33
41
34
42
namespace impl {
35
43
class LogWithNewline {
@@ -51,6 +59,16 @@ class LogWithNewline {
51
59
LogWithNewline (const LogWithNewline &) = delete ;
52
60
LogWithNewline &operator =(const LogWithNewline &) = delete ;
53
61
LogWithNewline &operator =(LogWithNewline &&) = delete ;
62
+ static constexpr const char *getFileName (const char *path) {
63
+ // Remove the path prefix from the file name.
64
+ const char *filename = path;
65
+ for (const char *p = path; *p != ' \0 ' ; ++p) {
66
+ if (*p == ' /' || *p == ' \\ ' ) {
67
+ filename = p + 1 ;
68
+ }
69
+ }
70
+ return filename;
71
+ }
54
72
55
73
private:
56
74
raw_ostream &os;
You can’t perform that action at this time.
0 commit comments