[llvm-bugs] [Bug 28125] New: Erroneous line not mentioned in error messages

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jun 14 07:37:00 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=28125

            Bug ID: 28125
           Summary: Erroneous line not mentioned in error messages
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: csaba_22 at yahoo.co.uk
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16538
  --> https://llvm.org/bugs/attachment.cgi?id=16538&action=edit
preprocessor output

Compiling the following program:

#include <unordered_map>
#include <memory>
struct ED {};
struct AWI {
    std::unordered_map<int, std::unique_ptr<ED>> ed_;
};
int main() {
    AWI a;
    AWI b{a};
}

with clang version 3.9.0 (trunk 272655) -save-temps -std=c++11
where_is_the_error.cc
results in the following error messages:

In file included from where_is_the_error.cc:1:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/unordered_map:41:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/tuple:39:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/array:39:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/stdexcept:39:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/string:41:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/allocator.h:46:
In file included from
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/x86_64-pc-linux-gnu/bits/c++allocator.h:33:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/ext/new_allocator.h:120:23:
error: call to implicitly-deleted copy constructor of 'std::pair<const int,
std::unique_ptr<ED, std::default_delete<ED> > >'
 { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
                      ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/alloc_traits.h:455:8:
note: in instantiation of function template specialization
'__gnu_cxx::new_allocator<std::pair<const int, std::unique_ptr<ED,
std::default_delete<ED> > > >::construct<std::pair<const int,
std::unique_ptr<ED, std::default_delete<ED> > >, const std::pair<const int,
std::unique_ptr<ED, std::default_delete<ED> > > &>' requested here
 { __a.construct(__p, std::forward<_Args>(__args)...); }
       ^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/hashtable_policy.h:1953:28:
note: in instantiation of function template specialization
'std::allocator_traits<std::allocator<std::pair<const int, std::unique_ptr<ED,
std::default_delete<ED> > > > >::construct<std::pair<const int,
std::unique_ptr<ED, std::default_delete<ED> > >, const std::pair<const int,
std::unique_ptr<ED, std::default_delete<ED> > > &>' requested here
     __value_alloc_traits::construct(__a, __n->_M_valptr(),
                           ^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/hashtable.h:1118:18:
note: in instantiation of function template specialization
'std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const
int, std::unique_ptr<ED, std::default_delete<ED> > >, false> >
>::_M_allocate_node<const std::pair<const int, std::unique_ptr<ED,
std::default_delete<ED> > > &>' requested here
  { return this->_M_allocate_node(__n->_M_v()); });
                 ^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/unordered_map.h:172:7:
note: in instantiation of member function 'std::_Hashtable<int, std::pair<const
int, std::unique_ptr<ED, std::default_delete<ED> > >,
std::allocator<std::pair<const int, std::unique_ptr<ED, std::default_delete<ED>
> > >, std::__detail::_Select1st, std::equal_to<int>, std::hash<int>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false,
false, true> >::_Hashtable' requested here
      unordered_map(const unordered_map&) = default;
      ^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/stl_pair.h:224:17:
note: explicitly defaulted function was implicitly deleted here
      constexpr pair(const pair&) = default;
                ^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/stl_pair.h:153:11:
note: copy constructor of 'pair<const int, std::unique_ptr<ED,
std::default_delete<ED> > >' is implicitly deleted because field 'second' has a
deleted copy constructor
      _T2 second;
          ^
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../gcc/x86_64-pc-linux-gnu/6.1.0/include/c++/bits/unique_ptr.h:356:7:
note: 'unique_ptr' has been explicitly marked deleted here
      unique_ptr(const unique_ptr&) = delete;
      ^
1 error generated.

Unfortunately, line 9 of where_is_the_error.cc (the one which tries to invoke
the copy constructor) is never mentioned. Without this information, it's
virtually impossible to correct the program.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160614/518bcb69/attachment-0001.html>


More information about the llvm-bugs mailing list