[Issue 22784] New: pragma(printf) applies to nested functions

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Feb 17 03:16:05 UTC 2022


https://issues.dlang.org/show_bug.cgi?id=22784

          Issue ID: 22784
           Summary: pragma(printf) applies to nested functions
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: duser at airmail.cc

example:

import core.stdc.stdarg; 
extern(C)
pragma(printf)
void fn(const(char)* fmt, ...)
{ 
    void inner(){}
}

output:

test.d(6): Error: function `test.fn.inner` `pragma(printf)` functions must be
`extern(C) void inner([parameters...], const(char)*, va_list)`

i'd expect the pragma to apply to the outer function only so you can have
non-printf-like helper functions inside a printf-like function

--


More information about the Digitalmars-d-bugs mailing list