Serge_Preis added a comment.

In https://reviews.llvm.org/D32439#736503, @malcolm.parsons wrote:

> Is it possible to add a test for this change?
>  There are some source range checks in test/Misc/ast-dump-decl.cpp


I looked into test/Misc/ast-dump-decl.cpp and other tests around, but they all 
use -ast-dump which doesn't dump source locations of affected entities (at 
least for problematic codes I've got). The only tool that exposed the 
difference is c-index-test -test-load-source all bug.cpp
bug.cpp:

  template<typename MyBase>
  struct Derived:  MyBase::InnerIterator
  {
      Derived() : MyBase::InnerIterator() {}
  };

Bad (trunk) has:

  // CHECK: bug.cpp:4:25: TypeRef=MyBase:1:19 Extent=[4:25 - 4:38]

Good (patched) has:

  // CHECK: bug.cpp:4:17: TypeRef=MyBase:1:19 Extent=[4:17 - 4:23]

I am new to clang development, but think that this difference can be exploited 
to craft proper test.

Something like:

  // RUN: c-index-test -test-load-source all %s | FileCheck %s
  template<typename MyBase>
  struct Derived:  MyBase::InnerIterator
  {
      Derived() : MyBase::InnerIterator() {}
  // CHECK:  TypeRef=MyBase:1:19 Extent=[4:17 - 4:23]
  };

What do you think? 
I may add some other cases similar to this to the test including other variants 
of dependent and independent names.


https://reviews.llvm.org/D32439



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to