llvm/llvm-project

Create a check that warns about using %p printf specifier

Open

#43,453 opened on Nov 21, 2019

 (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
 (PR metrics pending)

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