Skip to content
Snippets Groups Projects
  • Alp Toker's avatar
    67c68060
    Emit an extension warning when changing system header tokens · 67c68060
    Alp Toker authored
    clang converts keywords to identifiers for compatibility with various system
    headers such as GNU libc.
    
    Implement a -Wkeyword-compat extension warning to diagnose those cases. The
    warning is on by default but will generally be ignored in system headers. It
    can however be enabled globally to aid standards conformance testing.
    
    This also changes the __uptr keyword avoidance from r195710 to no longer
    special-case system headers, bringing it in line with other similar workarounds
    in clang.
    
    Implementation returns bool for symmetry with token annotation functions.
    
    Some examples:
    
    warning: keyword '__is_pod' will be treated as an identifier for the remainder of the translation unit [-Wkeyword-compat]
    struct __is_pod
    
    warning: keyword '__uptr' will be treated as an identifier here [-Wkeyword-compat]
    union w *__uptr;
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196212 91177308-0d34-0410-b5e6-96231b3b80d8
    67c68060
    History
    Emit an extension warning when changing system header tokens
    Alp Toker authored
    clang converts keywords to identifiers for compatibility with various system
    headers such as GNU libc.
    
    Implement a -Wkeyword-compat extension warning to diagnose those cases. The
    warning is on by default but will generally be ignored in system headers. It
    can however be enabled globally to aid standards conformance testing.
    
    This also changes the __uptr keyword avoidance from r195710 to no longer
    special-case system headers, bringing it in line with other similar workarounds
    in clang.
    
    Implementation returns bool for symmetry with token annotation functions.
    
    Some examples:
    
    warning: keyword '__is_pod' will be treated as an identifier for the remainder of the translation unit [-Wkeyword-compat]
    struct __is_pod
    
    warning: keyword '__uptr' will be treated as an identifier here [-Wkeyword-compat]
    union w *__uptr;
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196212 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.