Clean up *printf macros to avoid conflict with format archetypes.
Tom Lane <tgl@sss.pgh.pa.us>
Clean up *printf macros to avoid conflict with format archetypes. We must define the macro "printf" with arguments, else it can mess up format archetype attributes in builds where PG_PRINTF_ATTRIBUTE is just "printf". Fortunately, that's easy to do now that we're requiring C99; we can use __VA_ARGS__. On the other hand, it's better not to use __VA_ARGS__ for the rest of the *printf crew, so that one can take the addresses of those functions without surprises. I'd proposed doing this some time ago, but forgot to make it happen; buildfarm failures subsequent to 96bf88d52 reminded me. Discussion: https://postgr.es/m/22709.1535135640@sss.pgh.pa.us Discussion: https://postgr.es/m/20180926190934.ea4xvzhkayuw7gkx@alap3.anarazel.de
Files
| Path | Change | +/− |
|---|---|---|
| src/include/port.h | modified | +7 −13 |
| src/pl/plperl/plperl.h | modified | +0 −5 |
| src/pl/plpython/plpython.h | modified | +0 −5 |
Discussion
- About those snprintf invocation macros 1 message · 2018-08-24
- Allowing printf("%m") only where it actually works 50 messages · 2018-05-21 → 2018-10-09