[llvm-bugs] [Bug 52360] New: __PRETTY_FUNCTION__ leaks absolute paths even with -fmacro-prefix-map

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Oct 30 05:55:09 PDT 2021


            Bug ID: 52360
           Summary: __PRETTY_FUNCTION__ leaks absolute paths even with
           Product: clang
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: vesko.karaganev at gmail.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
                    neeilans at live.com, richard-llvm at metafoo.co.uk

The `-fmacro-prefix-map` option remaps "file source paths in predefined
preprocessor macros and __builtin_FILE()". The __PRETTY_FUNCTION__ predefined
macro expands to a string, which can contain absolute file paths when the
function signature includes a lambda as a template parameter.

template <typename F>
void a() {
    const char* file = __FILE__;
    const char* func = __PRETTY_FUNCTION__;

int main() {
    auto f = []() { return 0; };

When the above code is compiled with `-fmacro-prefix-map=$SRCDIR=/TEST`, the
paths in the expansion of `__PRETTY_FUNCTION__` are not remapped.

The output binary contains:
void a() [F = (lambda at /app/example.cpp:8:14)]

Compiler Explorer: https://godbolt.org/z/8vYW84oMv

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20211030/4e187543/attachment.html>

More information about the llvm-bugs mailing list