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

Reply via email to