Open yurivict opened 2 years ago
@yurivict Finally got around to fixing some of these errors. If you have time, could you try with the current repo and let me know the results?
The <array>
header is missing in 1.1.1:
In file included from cdlParser.cc:41:
In file included from cdlParser.yy:32:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:428:64: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
__alloc_traits::destroy(__alloc(), _VSTD::__to_address(--__soon_to_be_end));
^
/usr/include/c++/v1/vector:371:29: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::__destruct_at_end' requested here
void clear() _NOEXCEPT {__destruct_at_end(__begin_);}
^
/usr/include/c++/v1/vector:465:9: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::clear' requested here
clear();
^
/usr/include/c++/v1/vector:497:5: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::~__vector_base' requested here
vector() _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
^
./CCircuit.hh:35:7: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::vector' requested here
class CCircuit {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from cdlParser.cc:41:
In file included from cdlParser.yy:32:
In file included from ./Cvc.hh:39:
In file included from ./CvcTypes.hh:28:
In file included from /usr/include/c++/v1/string:511:
In file included from /usr/include/c++/v1/string_view:179:
In file included from /usr/include/c++/v1/__string:57:
In file included from /usr/include/c++/v1/algorithm:653:
/usr/include/c++/v1/memory:874:58: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
_VSTD::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp));
^
/usr/include/c++/v1/__memory/allocator_traits.h:280:13: note: in instantiation of member function 'std::allocator<std::array<unsigned int, 5>>::deallocate' requested here
__a.deallocate(__p, __n);
^
/usr/include/c++/v1/vector:466:25: note: in instantiation of member function 'std::allocator_traits<std::allocator<std::array<unsigned int, 5>>>::deallocate' requested here
__alloc_traits::deallocate(__alloc(), __begin_, capacity());
^
/usr/include/c++/v1/vector:497:5: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::~__vector_base' requested here
vector() _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
^
./CCircuit.hh:35:7: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::vector' requested here
class CCircuit {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from cdlParser.cc:41:
In file included from cdlParser.yy:32:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:374:52: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
{return static_cast<size_type>(__end_cap() - __begin_);}
^
/usr/include/c++/v1/vector:466:57: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::capacity' requested here
__alloc_traits::deallocate(__alloc(), __begin_, capacity());
^
/usr/include/c++/v1/vector:497:5: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::~__vector_base' requested here
vector() _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
^
./CCircuit.hh:35:7: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::vector' requested here
class CCircuit {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from cdlParser.cc:41:
In file included from cdlParser.yy:32:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:879:54: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
__annotate_contiguous_container(data(), data() + capacity(),
^
/usr/include/c++/v1/vector:553:9: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__annotate_delete' requested here
__annotate_delete();
^
./CCircuit.hh:35:7: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::~vector' requested here
class CCircuit {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
4 errors generated.
gmake[5]: *** [Makefile:550: cdlParser.o] Error 1
gmake[5]: *** Waiting for unfinished jobs....
CCircuit.cc:257:56: error: type 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::value_type' (aka 'std::array<unsigned int, 5>') does not provide a subscript operator
if ( (*circuit_ppit)->devicePrintCount_v[device_it][theErrorSubIndex] > 0 ) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
CCircuit.cc:262:89: error: type 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::value_type' (aka 'std::array<unsigned int, 5>') does not provide a subscript operator
myErrorSummary << " error count " << (*circuit_ppit)->deviceErrorCount_v[device_it][theErrorSubIndex] << "/" << (*circuit_ppit)->instanceId_v.size();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
CCircuit.cc:263:78: error: type 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::value_type' (aka 'std::array<unsigned int, 5>') does not provide a subscript operator
if ( theErrorLimit > 0 && (*circuit_ppit)->deviceErrorCount_v[device_it][theErrorSubIndex] > theErrorLimit ) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
CCircuit.cc:269:51: error: type 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::value_type' (aka 'std::array<unsigned int, 5>') does not provide a subscript operator
(*circuit_ppit)->deviceErrorCount_v[device_it][theErrorSubIndex] = 0;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
CCircuit.cc:270:51: error: type 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::value_type' (aka 'std::array<unsigned int, 5>') does not provide a subscript operator
(*circuit_ppit)->devicePrintCount_v[device_it][theErrorSubIndex] = 0;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
mv -f .deps/CCdlParserDriver.Tpo .deps/CCdlParserDriver.Po
mv -f .deps/CCondition.Tpo .deps/CCondition.Po
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:2026:48: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
this->__destruct_at_end(this->__begin_ + __sz);
^
CCircuit.cc:96:21: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::resize' requested here
deviceErrorCount_v.resize(theDevicePtrList_p->DeviceCount());
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:658:53: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
{return static_cast<size_type>(this->__end_ - this->__begin_);}
^
/usr/include/c++/v1/vector:2022:22: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::size' requested here
size_type __cs = size();
^
CCircuit.cc:96:21: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::resize' requested here
deviceErrorCount_v.resize(theDevicePtrList_p->DeviceCount());
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:1088:50: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
if (static_cast<size_type>(this->__end_cap() - this->__end_) >= __n)
^
/usr/include/c++/v1/vector:2024:15: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__append' requested here
this->__append(__sz - __cs);
^
CCircuit.cc:96:21: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::resize' requested here
deviceErrorCount_v.resize(theDevicePtrList_p->DeviceCount());
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:428:64: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
__alloc_traits::destroy(__alloc(), _VSTD::__to_address(--__soon_to_be_end));
^
/usr/include/c++/v1/vector:835:17: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::__destruct_at_end' requested here
__base::__destruct_at_end(__new_last);
^
/usr/include/c++/v1/vector:2026:15: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__destruct_at_end' requested here
this->__destruct_at_end(this->__begin_ + __sz);
^
CCircuit.cc:96:21: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::resize' requested here
deviceErrorCount_v.resize(theDevicePtrList_p->DeviceCount());
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:893:54: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
__annotate_contiguous_container(data(), data() + capacity(),
^
/usr/include/c++/v1/vector:836:9: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__annotate_shrink' requested here
__annotate_shrink(__old_size);
^
/usr/include/c++/v1/vector:2026:15: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__destruct_at_end' requested here
this->__destruct_at_end(this->__begin_ + __sz);
^
CCircuit.cc:96:21: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::resize' requested here
deviceErrorCount_v.resize(theDevicePtrList_p->DeviceCount());
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:374:52: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
{return static_cast<size_type>(__end_cap() - __begin_);}
^
/usr/include/c++/v1/vector:661:25: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::capacity' requested here
{return __base::capacity();}
^
/usr/include/c++/v1/vector:893:56: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::capacity' requested here
__annotate_contiguous_container(data(), data() + capacity(),
^
/usr/include/c++/v1/vector:836:9: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__annotate_shrink' requested here
__annotate_shrink(__old_size);
^
/usr/include/c++/v1/vector:2026:15: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__destruct_at_end' requested here
this->__destruct_at_end(this->__begin_ + __sz);
^
CCircuit.cc:96:21: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::resize' requested here
deviceErrorCount_v.resize(theDevicePtrList_p->DeviceCount());
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:879:54: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
__annotate_contiguous_container(data(), data() + capacity(),
^
/usr/include/c++/v1/vector:553:9: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::__annotate_delete' requested here
__annotate_delete();
^
./CCircuit.hh:35:7: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::~vector' requested here
class CCircuit {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:39:
In file included from ./CvcTypes.hh:28:
In file included from /usr/include/c++/v1/string:511:
In file included from /usr/include/c++/v1/string_view:179:
In file included from /usr/include/c++/v1/__string:57:
In file included from /usr/include/c++/v1/algorithm:653:
/usr/include/c++/v1/memory:874:58: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
_VSTD::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), _LIBCPP_ALIGNOF(_Tp));
^
/usr/include/c++/v1/__memory/allocator_traits.h:280:13: note: in instantiation of member function 'std::allocator<std::array<unsigned int, 5>>::deallocate' requested here
__a.deallocate(__p, __n);
^
/usr/include/c++/v1/vector:466:25: note: in instantiation of member function 'std::allocator_traits<std::allocator<std::array<unsigned int, 5>>>::deallocate' requested here
__alloc_traits::deallocate(__alloc(), __begin_, capacity());
^
/usr/include/c++/v1/vector:551:5: note: in instantiation of member function 'std::__vector_base<std::array<unsigned int, 5>, std::allocator<std::array<unsigned int, 5>>>::~__vector_base' requested here
~vector()
^
./CCircuit.hh:35:7: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::~vector' requested here
class CCircuit {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from CCircuit.cc:24:
In file included from ./CCircuit.hh:27:
In file included from ./Cvc.hh:62:
/usr/include/c++/v1/vector:1550:12: error: implicit instantiation of undefined template 'std::array<unsigned int, 5>'
return this->__begin_[__n];
^
CCircuit.cc:257:45: note: in instantiation of member function 'std::vector<std::array<unsigned int, 5>>::operator[]' requested here
if ( (*circuit_ppit)->devicePrintCount_v[device_it][theErrorSubIndex] > 0 ) {
^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
14 errors generated.
@yurivict Does adding the the following line fix the problem?
diff --git a/src/Cvc.hh b/src/Cvc.hh
index 8df45c1..c01d04b 100755
--- a/src/Cvc.hh
+++ b/src/Cvc.hh
@@ -59,6 +59,7 @@ extern char vv_suffix[], vv_trailer[];
#include <stdexcept>
#include <unordered_map>
#include <unordered_set>
+#include <array>
#include <vector>
#include <iomanip>
#include <set>
Does adding the the following line fix the problem?
array-related failures are gone, but there are still warnings/errors:
CCvcDb_init.cc:346:2: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
register netId_t mySourceNet, myDrainNet, myGateNet; //, myBulkNet;
^~~~~~~~~
CCvcDb_init.cc:346:2: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
register netId_t mySourceNet, myDrainNet, myGateNet; //, myBulkNet;
^~~~~~~~~
CCvcDb_init.cc:346:2: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
register netId_t mySourceNet, myDrainNet, myGateNet; //, myBulkNet;
^~~~~~~~~
CCvcDb_interactive.cc:1200:23: warning: equality comparison result unused [-Wunused-comparison]
mySearchInstance == FindNetInstance(myNet, theCurrentInstanceId);
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CCvcDb_interactive.cc:1200:23: note: use '=' to turn this equality comparison into an assignment
mySearchInstance == FindNetInstance(myNet, theCurrentInstanceId);
^~
=
CCvcDb_print.cc:555:49: warning: adding 'modelType_t' to a string does not append to the string [-Wstring-plus-int]
throw EDatabaseError("Invalid device type: " + theConnections.device_p->model_p->type);
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CCvcDb_print.cc:555:49: note: use array indexing to silence this warning
throw EDatabaseError("Invalid device type: " + theConnections.device_p->model_p->type);
^
& [ ]
CCvcDb_print.cc:585:49: warning: adding 'modelType_t' to a string does not append to the string [-Wstring-plus-int]
throw EDatabaseError("Invalid device type: " + theConnections.device_p->model_p->type);
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CCvcDb_print.cc:585:49: note: use array indexing to silence this warning
throw EDatabaseError("Invalid device type: " + theConnections.device_p->model_p->type);
^
& [ ]
CCvcDb_print.cc:707:61: warning: adding 'terminal_t' to a string does not append to the string [-Wstring-plus-int]
default: { throw EDatabaseError("Invalid terminal type: " + theTerminal); }
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
CCvcDb_print.cc:707:61: note: use array indexing to silence this warning
default: { throw EDatabaseError("Invalid terminal type: " + theTerminal); }
^
& [ ]
CCvcDb_print.cc:753:61: warning: adding 'terminal_t' to a string does not append to the string [-Wstring-plus-int]
default: { throw EDatabaseError("Invalid terminal type: " + theTerminal); }
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
CCvcDb_print.cc:753:61: note: use array indexing to silence this warning
default: { throw EDatabaseError("Invalid terminal type: " + theTerminal); }
^
& [ ]
mv -f .deps/CCvcDb_main.Tpo .deps/CCvcDb_main.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CCvcDb_utility.o -MD -MP -MF .deps/CCvcDb_utility.Tpo -c -o CCvcDb_utility.o CCvcDb_utility.cc
mv -f .deps/CCvcDb_error.Tpo .deps/CCvcDb_error.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CCvcParameters.o -MD -MP -MF .deps/CCvcParameters.Tpo -c -o CCvcParameters.o CCvcParameters.cc
mv -f .deps/CCvcDb.Tpo .deps/CCvcDb.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CDevice.o -MD -MP -MF .deps/CDevice.Tpo -c -o CDevice.o CDevice.cc
4 warnings generated.
mv -f .deps/CCvcDb_print.Tpo .deps/CCvcDb_print.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CEventQueue.o -MD -MP -MF .deps/CEventQueue.Tpo -c -o CEventQueue.o CEventQueue.cc
mv -f .deps/CDevice.Tpo .deps/CDevice.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CFixedText.o -MD -MP -MF .deps/CFixedText.Tpo -c -o CFixedText.o CFixedText.cc
mv -f .deps/CCvcDb_utility.Tpo .deps/CCvcDb_utility.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CInstance.o -MD -MP -MF .deps/CInstance.Tpo -c -o CInstance.o CInstance.cc
mv -f .deps/CFixedText.Tpo .deps/CFixedText.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CModel.o -MD -MP -MF .deps/CModel.Tpo -c -o CModel.o CModel.cc
mv -f .deps/CEventQueue.Tpo .deps/CEventQueue.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CNormalValue.o -MD -MP -MF .deps/CNormalValue.Tpo -c -o CNormalValue.o CNormalValue.cc
mv -f .deps/CCvcParameters.Tpo .deps/CCvcParameters.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CParameterMap.o -MD -MP -MF .deps/CParameterMap.Tpo -c -o CParameterMap.o CParameterMap.cc
1 warning generated.
mv -f .deps/CCvcDb_interactive.Tpo .deps/CCvcDb_interactive.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CPower.o -MD -MP -MF .deps/CPower.Tpo -c -o CPower.o CPower.cc
mv -f .deps/CInstance.Tpo .deps/CInstance.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CSet.o -MD -MP -MF .deps/CSet.Tpo -c -o CSet.o CSet.cc
3 warnings generated.
mv -f .deps/CCvcDb_init.Tpo .deps/CCvcDb_init.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CvcMaps.o -MD -MP -MF .deps/CvcMaps.Tpo -c -o CvcMaps.o CvcMaps.cc
mv -f .deps/CNormalValue.Tpo .deps/CNormalValue.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT CVirtualNet.o -MD -MP -MF .deps/CVirtualNet.Tpo -c -o CVirtualNet.o CVirtualNet.cc
mv -f .deps/CParameterMap.Tpo .deps/CParameterMap.Po
cc -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -MT exitfail.o -MD -MP -MF .deps/exitfail.Tpo -c -o exitfail.o exitfail.c
mv -f .deps/exitfail.Tpo .deps/exitfail.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT gzstream.o -MD -MP -MF .deps/gzstream.Tpo -c -o gzstream.o gzstream.C
mv -f .deps/CSet.Tpo .deps/CSet.Po
cc -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -MT obstack.o -MD -MP -MF .deps/obstack.Tpo -c -o obstack.o obstack.c
mv -f .deps/obstack.Tpo .deps/obstack.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT resource.o -MD -MP -MF .deps/resource.Tpo -c -o resource.o resource.cc
mv -f .deps/gzstream.Tpo .deps/gzstream.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT utility.o -MD -MP -MF .deps/utility.Tpo -c -o utility.o utility.cc
mv -f .deps/CvcMaps.Tpo .deps/CvcMaps.Po
c++ -DHAVE_CONFIG_H -I. -I.. -fno-omit-frame-pointer -I/usr/local/include -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -std=gnu++11 -MT mmap_file_pool.o -MD -MP -MF .deps/mmap_file_pool.Tpo -c -o mmap_file_pool.o mmap_file_pool.cpp
In file included from CVirtualNet.cc:24:
In file included from ./CVirtualNet.hh:30:
./mmappable_vector.h:151:10: error: no member named '_M_impl' in 'std::vector<CVirtualNet, mmap_allocator_namespace::mmap_allocator<CVirtualNet>>'
Base::_M_impl._M_finish = Base::_M_impl._M_start + n;
^
./mmappable_vector.h:92:4: note: in instantiation of member function 'mmap_allocator_namespace::mmappable_vector<CVirtualNet>::_M_set_finish' requested here
_M_set_finish(n);
^
CVirtualNet.cc:82:2: note: in instantiation of member function 'mmap_allocator_namespace::mmappable_vector<CVirtualNet>::mmap_file' requested here
mmap_file(theSourceVector.size());
^
In file included from CVirtualNet.cc:24:
In file included from ./CVirtualNet.hh:30:
./mmappable_vector.h:139:30: error: no member named '_M_get_Tp_allocator' in 'std::vector<CVirtualNet, mmap_allocator_namespace::mmap_allocator<CVirtualNet>>'
A *the_allocator = &Base::_M_get_Tp_allocator();
^
CVirtualNet.cc:84:2: note: in instantiation of member function 'mmap_allocator_namespace::mmappable_vector<CVirtualNet>::remmap_file_for_read' requested here
remmap_file_for_read();
^
2 errors generated.
gmake[5]: *** [Makefile:550: CVirtualNet.o] Error 1
gmake[5]: *** Waiting for unfinished jobs....
mv -f .deps/resource.Tpo .deps/resource.Po
mv -f .deps/mmap_file_pool.Tpo .deps/mmap_file_pool.Po
utility.cc:33:2: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
register void *value = malloc (size);
^~~~~~~~~
mv -f .deps/CPower.Tpo .deps/CPower.Po
mv -f .deps/CModel.Tpo .deps/CModel.Po
1 warning generated.
@yurivict I've made changes to the source to handle most of the warning/errors. They're on the clang-13
branch.
git clone -b clang-13 https://github.com/d-m-bailey/cvc.git
There are probably still problems with src/mmappable_vector.h
because it has 4 compiler specific directives.
For example:
#ifdef __GNUC__
#if __GNUC__ == 3
A *the_allocator = static_cast<A*>(&(this->Base::_M_impl));
#else
A *the_allocator = &Base::_M_get_Tp_allocator();
#endif
#else
#error "Not GNU C++, please either implement me or use GCC"
#endif
Do you know how to implement this for the clang-13 compiler?
Do you know how to implement this for the clang-13 compiler?
No.
What does this code achieve? How are regular containers insufficient?
STL vector generally can't be mmapable because it can generally resize any time. If you need a deep modification like this - then you would be better off writing your own class from scratch.
The project fails to build with gcc-12 as well: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266189
Thanks for the information, the gcc-12 fail looks like it has to do with the cdlParser.c which is bison output.
As for the mmap, I think I was trying to reduce the real memory required by essentially forcing the data to disk. I think the array sizes were fixed when allocated.
Yes, it's never a good idea to use STL container inner structures, because there are many implementations of STL. Having a custom class for mmapped vector seems like the way to go.
Currently the cvc's FreeBSD port doesn't build with clang, and it also prevents GCC upgrade to 12 because it fails with gcc-12.
@yurivict Does adding the the following line fix the problem?
diff --git a/src/Cvc.hh b/src/Cvc.hh index 8df45c1..c01d04b 100755 --- a/src/Cvc.hh +++ b/src/Cvc.hh @@ -59,6 +59,7 @@ extern char vv_suffix[], vv_trailer[]; #include <stdexcept> #include <unordered_map> #include <unordered_set> +#include <array> #include <vector> #include <iomanip> #include <set>
FYI
This maybe off-topic (not related to clang).
But I can confirm that: include
These warnings likely indicate real errors:
There are also these errors: