PR10828: Produce a warning when a no-arguments function is declared in block
scope, when no other indication is provided that the user intended to declare a function rather than a variable. Remove some false positives from the existing 'parentheses disambiguated as a function' warning by suppressing it when the declaration is marked as 'typedef' or 'extern'. Add a new warning group -Wvexing-parse containing both of these warnings. The new warning is enabled by default; despite a number of false positives (and one bug) in clang's test-suite, I have only found genuine bugs with it when running it over a significant quantity of real C++ code. llvm-svn: 147599
Showing
- clang/include/clang/Basic/DiagnosticGroups.td 1 addition, 0 deletionsclang/include/clang/Basic/DiagnosticGroups.td
- clang/include/clang/Basic/DiagnosticParseKinds.td 5 additions, 1 deletionclang/include/clang/Basic/DiagnosticParseKinds.td
- clang/include/clang/Sema/DeclSpec.h 7 additions, 0 deletionsclang/include/clang/Sema/DeclSpec.h
- clang/lib/Parse/ParseDecl.cpp 15 additions, 0 deletionsclang/lib/Parse/ParseDecl.cpp
- clang/test/CXX/basic/basic.link/p9.cpp 1 addition, 2 deletionsclang/test/CXX/basic/basic.link/p9.cpp
- clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p11.cpp 6 additions, 7 deletions.../test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p11.cpp
- clang/test/Misc/warning-flags.c 1 addition, 2 deletionsclang/test/Misc/warning-flags.c
- clang/test/SemaCXX/conditional-expr.cpp 2 additions, 2 deletionsclang/test/SemaCXX/conditional-expr.cpp
- clang/test/SemaCXX/decl-expr-ambiguity.cpp 7 additions, 2 deletionsclang/test/SemaCXX/decl-expr-ambiguity.cpp
- clang/test/SemaTemplate/class-template-ctor-initializer.cpp 1 addition, 1 deletionclang/test/SemaTemplate/class-template-ctor-initializer.cpp
Loading
Please register or sign in to comment