From 69f90dce49124c98838ad80914c0c6642311167c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 5 Jan 2012 04:12:21 +0000 Subject: 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 --- clang/test/SemaCXX/conditional-expr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'clang/test/SemaCXX/conditional-expr.cpp') diff --git a/clang/test/SemaCXX/conditional-expr.cpp b/clang/test/SemaCXX/conditional-expr.cpp index 5648d022b52..3cfddb3a416 100644 --- a/clang/test/SemaCXX/conditional-expr.cpp +++ b/clang/test/SemaCXX/conditional-expr.cpp @@ -96,8 +96,8 @@ void test() (void)(i1 ? BadDerived() : BadBase()); // b2.1 (hierarchy stuff) - const Base constret(); - const Derived constder(); + const Base constret(); // expected-warning {{interpreted as a function declaration}} + const Derived constder(); // expected-warning {{interpreted as a function declaration}} // should use const overload A a1((i1 ? constret() : Base()).trick()); A a2((i1 ? Base() : constret()).trick()); -- cgit v1.2.3