rsmith added inline comments. ================ Comment at: lib/Sema/SemaDecl.cpp:3377-3378 @@ -3376,4 +3376,4 @@ if (!Context.hasSameType(NewArray, PrevVDTy)) return diagnoseVarDeclTypeMismatch(*this, New, PrevVD); } ---------------- ahatanak wrote: > rsmith wrote: > > If you do use `isDependentSizedArrayType()`, you'll need to change this to > > check the bounds of the array types rather than the type. > It seems to me that you don't want to do the check when either the array > bound or the element type is dependent. Which case would we miss if > isDependentType is used here instead of isDependentSizedArrayType? Could you > show an example? Sure. We could diagnose both declarations in the template here:
int a[5]; int b[5]; template<typename T, int N> void f() { extern T a[6]; extern float b[N]; } ... because in both cases the type can never match. However, we don't do this sort of partial type matching in any other cases, so it's very much just a "nice-to-have". https://reviews.llvm.org/D24110 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits