llvm/llvm-project

Create a check that warns about using %p printf specifier

Open

#43,453 opened on Nov 21, 2019

View on GitHub
 (11 comments) (0 reactions) (0 assignees)C++ (10,782 forks)batch import
bugzillaclang:static analyzerenhancementgood first issue

Repository metrics

Stars
 (26,378 stars)
PR merge metrics
 (Avg merge 1d 2h) (1,000 merged PRs in 30d)

Description

Bugzilla Link 44108
Version unspecified
OS Windows NT

Extended Description

Recently I ran into some surprising behavior surrounding the use of %p in a printf call. On Windows %p with a nullptr prints zeros, but on Linux %p with a nullptr prints "(nil)". This is surprising, but conforming to the standard which states (roughly) that the result of %p is implementation dependent.

Create a check that warns about the potential non-portable output when using %p in a printf or scanf specifier.

Contributor guide