Author: danielmarjamaki Date: Mon Aug 28 23:25:24 2017 New Revision: 311984
URL: http://llvm.org/viewvc/llvm-project?rev=311984&view=rev Log: [clang-tidy] Fix 'misc-misplaced-widening-cast' assertion error. Reviewers: alexfh, xazax.hun, danielmarjamaki Differential Revision: http://reviews.llvm.org/D36670 Modified: clang-tools-extra/trunk/clang-tidy/misc/MisplacedWideningCastCheck.cpp clang-tools-extra/trunk/test/clang-tidy/misc-misplaced-widening-cast-explicit-only.cpp Modified: clang-tools-extra/trunk/clang-tidy/misc/MisplacedWideningCastCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/MisplacedWideningCastCheck.cpp?rev=311984&r1=311983&r2=311984&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/misc/MisplacedWideningCastCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/misc/MisplacedWideningCastCheck.cpp Mon Aug 28 23:25:24 2017 @@ -192,6 +192,10 @@ void MisplacedWideningCastCheck::check(c if (Calc->getLocStart().isMacroID()) return; + if (Cast->isTypeDependent() || Cast->isValueDependent() || + Calc->isTypeDependent() || Calc->isValueDependent()) + return; + ASTContext &Context = *Result.Context; QualType CastType = Cast->getType(); Modified: clang-tools-extra/trunk/test/clang-tidy/misc-misplaced-widening-cast-explicit-only.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-misplaced-widening-cast-explicit-only.cpp?rev=311984&r1=311983&r2=311984&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/misc-misplaced-widening-cast-explicit-only.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/misc-misplaced-widening-cast-explicit-only.cpp Mon Aug 28 23:25:24 2017 @@ -56,3 +56,9 @@ long ret(int a) { return (long)a * 1000; } } + +// Shall not generate an assert. https://bugs.llvm.org/show_bug.cgi?id=33660 +template <class> class A { + enum Type {}; + static char *m_fn1() { char p = (Type)(&p - m_fn1()); } +}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits