ccing Richard.
On 25 November 2014 at 03:38, Stephan Bergmann <[email protected]> wrote: > ping > > > On 11/10/2014 06:18 PM, Stephan Bergmann wrote: >> >> On 10/23/2014 10:41 AM, David Majnemer wrote: >>> >>> Per the developer policy [1], please add a test case to accompany your >>> change. >>> >>> [1] http://llvm.org/docs/DeveloperPolicy.html#test-cases >>> >>> Looks good otherwise. >> >> >> Attached updated patch including test case. >> >>> On Thu, Oct 23, 2014 at 12:43 AM, Stephan Bergmann <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> [ping] >>> >>> >>> On 10/14/2014 04:12 PM, Stephan Bergmann wrote: >>> >>> $ clang++ --version >>> clang version 3.6.0 (trunk 219190) >>> Target: x86_64-unknown-linux-gnu >>> Thread model: posix >>> >>> $ cat test.cc >>> enum class E { e }; >>> typedef E E2; >>> E2 f1() { return E::e; } >>> E f2() { return E::e; } >>> bool g1() { return !f1(); } >>> bool g2() { return !f2(); } >>> >>> $ clang++ -std=c++11 -c test.cc >>> test.cc:6:20: error: invalid argument type 'E' to unary >>> expression >>> bool g2() { return !f2(); } >>> ^~~~~ >>> 1 error generated. >>> >>> >>> rightly complains about the invalid contextual conversion to >>> bool in g2 >>> but erroneously not also about the one in g1. >>> >>> Index: lib/Sema/SemaExpr.cpp >>> >>> ==============================__==============================__======= >>> --- lib/Sema/SemaExpr.cpp (revision 219190) >>> +++ lib/Sema/SemaExpr.cpp (working copy) >>> @@ -7414,7 +7414,7 @@ >>> } >>> >>> static bool isScopedEnumerationType(__QualType T) { >>> - if (const EnumType *ET = dyn_cast<EnumType>(T)) >>> + if (const EnumType *ET = >>> dyn_cast<EnumType>(T.__getCanonicalType())) >>> >>> return ET->getDecl()->isScoped(); >>> return false; >>> } >>> >>> >>> would fix that for me. > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
