This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/20347] New: Long paths in error messages
- From: "sylvain dot pion at sophia dot inria dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Mar 2005 12:34:04 -0000
- Subject: [Bug c++/20347] New: Long paths in error messages
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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