Skip to content

Commit 7385e60

Browse files
authored
Merge pull request #70 from churley-qcom/cxx20-compatibility
C++20 compatibility
2 parents a08e113 + 40160f1 commit 7385e60

File tree

6 files changed

+73
-15
lines changed

6 files changed

+73
-15
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: CI Transaction Recording
2+
3+
on:
4+
push:
5+
paths:
6+
- '**.cpp'
7+
- '**.h'
8+
- '**CMakeLists.txt'
9+
- '.github/workflows/**'
10+
pull_request:
11+
paths:
12+
- '**.cpp'
13+
- '**.h'
14+
- '**CMakeLists.txt'
15+
- '.github/workflows/**'
16+
17+
jobs:
18+
build-and-test:
19+
runs-on: ubuntu-latest
20+
strategy:
21+
matrix:
22+
cpp_std: [11, 14, 17, 20]
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- name: Update submodules
27+
run: git submodule update --init --recursive
28+
29+
- name: Install dependencies
30+
run: |
31+
sudo apt-get update
32+
sudo apt-get install -y cmake g++ python3-pip
33+
pip3 install "conan<2.0"
34+
35+
- name: Configure
36+
run: >
37+
cmake -S . -B build
38+
-DCMAKE_CXX_STANDARD=${{ matrix.cpp_std }}
39+
40+
- name: Build
41+
run: cmake --build build -j
42+
43+
- name: Run transaction_recording
44+
run: ./build/examples/transaction_recording/transaction_recording

third_party/cci-1.0.1/cci/cfg/cci_param_typed.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@
3131
* @author Enrico Galli, Intel
3232
* @author Guillaume Delbergue, GreenSocs / Ericsson
3333
*/
34+
35+
#if defined(__clang__) || \
36+
(defined(__GNUC__) && ((__GNUC__ * 1000 + __GNUC_MINOR__) >= 4006))
37+
// ignore warning about hidden "register_post_read_callback()" overloads
38+
#pragma GCC diagnostic push
39+
#pragma GCC diagnostic ignored "-Woverloaded-virtual"
40+
#endif
41+
3442
CCI_OPEN_NAMESPACE_
3543

3644
// Forward declaration
@@ -988,4 +996,10 @@ template <typename T, cci_param_mutable_type TM = CCI_MUTABLE_PARAM>
988996
using cci_param = cci_param_typed<T,TM>;
989997

990998
CCI_CLOSE_NAMESPACE_
999+
1000+
#if defined(__clang__) || \
1001+
(defined(__GNUC__) && ((__GNUC__ * 1000 + __GNUC_MINOR__) >= 4006))
1002+
#pragma GCC diagnostic pop
1003+
#endif
1004+
9911005
#endif //CCI_CFG_CCI_PARAM_TYPED_H_INCLUDED_

third_party/cci-1.0.1/cci/core/cci_value.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@ class cci_value_map_elem_cref
764764
template<typename U> friend class cci_impl::value_iterator_impl;
765765
typedef cci_impl::value_ptr<cci_value_map_elem_cref> proxy_ptr;
766766

767-
typedef void value_type; // TODO: add explicit value_type
767+
using value_type = cci_value_map_elem_cref;
768768
public:
769769
typedef cci_value_map_elem_cref const_reference;
770770
typedef cci_value_map_elem_ref reference;
@@ -791,7 +791,7 @@ class cci_value_map_elem_ref
791791
{
792792
template<typename U> friend class cci_impl::value_iterator_impl;
793793
typedef cci_impl::value_ptr<cci_value_map_elem_ref> proxy_ptr;
794-
typedef void value_type; // TODO: add explicit value_type
794+
using value_type = cci_value_map_elem_ref;
795795
public:
796796
typedef cci_value_map_elem_cref const_reference;
797797
typedef cci_value_map_elem_ref reference;

third_party/cci-1.0.1/cci/core/cci_value_iterator.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ template<typename T> class value_iterator_impl
7171
{
7272
public:
7373
// std::iterator_traits types
74-
typedef T reference; // return by value!
75-
typedef value_ptr<T> pointer; // return proxy pointer
76-
typedef typename T::value_type value_type; // "real" value type
77-
typedef std::ptrdiff_t difference_type;
78-
typedef std::random_access_iterator_tag iterator_category;
74+
using reference = T; // return by value!
75+
using pointer = value_ptr<T>; // return proxy pointer
76+
using value_type = typename T::value_type; // "real" value type
77+
using difference_type = std::ptrdiff_t;
78+
using iterator_category = std::random_access_iterator_tag;
7979

8080
protected:
8181
typedef void* impl_type; // type-punned pointer for now
@@ -130,11 +130,11 @@ class cci_value_iterator
130130
public:
131131
/// @name C++ standard iterator types
132132
///@{
133-
typedef typename impl::value_type value_type;
134-
typedef typename impl::pointer pointer;
135-
typedef typename impl::reference reference;
136-
typedef typename impl::difference_type difference_type;
137-
typedef typename impl::iterator_category iterator_category;
133+
using value_type = typename impl::value_type;
134+
using pointer = typename impl::pointer;
135+
using reference = typename impl::reference;
136+
using difference_type = typename impl::difference_type;
137+
using iterator_category = typename impl::iterator_category;
138138
///@}
139139

140140
/// constructs an invalid iterator (non-dereferencable, non-incrementable)

third_party/scv-tr/src/scv-tr/scv_introspection.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3252,8 +3252,8 @@ template <int W> class scv_extensions<sc_lv<W>> : public scv_extensions_base<sc_
32523252
// ----------------------------------------
32533253
template <typename T> class scv_extensions<scv_extensions<T>> : public scv_extensions<T> {
32543254
public:
3255-
scv_extensions<scv_extensions<T>>() {}
3256-
scv_extensions<scv_extensions<T>>(const scv_extensions<T>& rhs)
3255+
scv_extensions() {}
3256+
scv_extensions(const scv_extensions<T>& rhs)
32573257
: scv_extensions<T>(rhs) {}
32583258
virtual ~scv_extensions() {}
32593259
scv_extensions& operator=(const scv_extensions<T>& rhs) { return scv_extensions<T>::operator=(rhs); }

0 commit comments

Comments
 (0)