This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/20347] New: Long paths in error messages


This is a request for simplification of error messages, not a bug report.
Consider the following incorrect program, which generates an error
from inside the STL :
--------------------------------------
#include <algorithm>

struct A {};
A a[10];

int main() {
  std::find(a, a+10, a[1]);
  return 0;
}
--------------------------------------
The error message is :
--------------------------------------
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:
In function '_RandomAccessIterator std::find(_RandomAccessIterator,
_RandomAccessIterator, const _Tp&, std::random_access_iterator_tag) [with
_RandomAccessIterator = A*, _Tp = A]':
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:315:
  instantiated from '_InputIterator std::find(_InputIterator, _InputIterator,
const _Tp&) [with _InputIterator = A*, _Tp = A]'
long_error_message.C:7:   instantiated from here
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:207:
error: no match for 'operator==' in '* __first == __val'
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:211:
error: no match for 'operator==' in '* __first == __val'
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:215:
error: no match for 'operator==' in '* __first == __val'
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:219:
error: no match for 'operator==' in '* __first == __val'
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:227:
error: no match for 'operator==' in '* __first == __val'
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:231:
error: no match for 'operator==' in '* __first == __val'
/home/spion/GCC/Linux-4.0-2005-02-27/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_algo.h:235:
error: no match for 'operator==' in '* __first == __val'
-------------------------------------------

Notice the useless substring "lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../".
So my request is : would it be possible to simplify these paths
in disgnostic messages ?

-- 
           Summary: Long paths in error messages
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sylvain dot pion at sophia dot inria dot fr
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20347


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]