Skip to content

Commit c6cfb02

Browse files
authored
Merge pull request diffblue#2291 from tautschnig/c++-fixes-1
C++ regression test fixes and whitespace changes (subset of diffblue#1260)
2 parents 7c053bf + 80112d8 commit c6cfb02

File tree

102 files changed

+2983
-36
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+2983
-36
lines changed

appveyor.yml

+3
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ test_script:
9090
rmdir /s /q cpp\Decltype1
9191
rmdir /s /q cpp\Decltype2
9292
rmdir /s /q cpp\Function_Overloading1
93+
rmdir /s /q cpp\Resolver10
94+
rmdir /s /q cpp\Resolver11
95+
rmdir /s /q cpp\Template_Parameters1
9396
rmdir /s /q cpp\enum2
9497
rmdir /s /q cpp\enum7
9598
rmdir /s /q cpp\enum8

regression/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ add_subdirectory(goto-instrument)
3030
add_subdirectory(cpp)
3131
add_subdirectory(cbmc-cover)
3232
add_subdirectory(goto-instrument-typedef)
33+
add_subdirectory(smt2_solver)
3334
add_subdirectory(strings)
3435
add_subdirectory(invariants)
3536
add_subdirectory(goto-diff)
@@ -41,4 +42,4 @@ endif()
4142
add_subdirectory(goto-cc-cbmc)
4243
add_subdirectory(cbmc-cpp)
4344
add_subdirectory(goto-cc-goto-analyzer)
44-
45+
add_subdirectory(systemc)

regression/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ DIRS = cbmc \
1818
goto-cc-cbmc \
1919
cbmc-cpp \
2020
goto-cc-goto-analyzer \
21+
systemc
2122
# Empty last line
2223

2324
# Tests under goto-gcc cannot be run on Windows, so appveyor.yml unlinks

regression/cbmc/cpp1/main.cpp

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#include <cassert>
2+
3+
template <class T>
4+
class sc_signal
5+
{
6+
public:
7+
T data;
8+
sc_signal(){}
9+
sc_signal(const char *p) {}
10+
T read() {return data;}
11+
void write(const T &d) {data = d;}
12+
};
13+
14+
15+
struct rbm
16+
{
17+
18+
sc_signal<unsigned int> data_out; //<L1>
19+
20+
sc_signal<bool> done; // <L2>
21+
22+
sc_signal<bool> conf_done;
23+
24+
void config();
25+
26+
rbm()
27+
{
28+
29+
}
30+
31+
};
32+
33+
34+
void rbm::config()
35+
{
36+
do {
37+
conf_done.write(true);
38+
assert(conf_done.data==true);
39+
} while ( !conf_done.read() );
40+
}
41+
42+
int main()
43+
{
44+
rbm IMPL;
45+
IMPL.config();
46+
47+
return 0;
48+
}

regression/cbmc/cpp1/test.desc

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
KNOWNBUG
2+
main.cpp
3+
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
9+
--
10+
This has been reported as #661.

regression/cbmc/cpp2/main.cpp

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#include <cassert>
2+
#include <stdint.h>
3+
#include <stdbool.h>
4+
5+
#undef HOTFIX
6+
7+
typedef struct {
8+
uint32_t value_31_0 : 32;
9+
} signal32_t;
10+
11+
typedef struct {
12+
uint8_t value_0_0 : 1;
13+
} signal1_t;
14+
15+
static inline bool yosys_simplec_get_bit_25_of_32(const signal32_t *sig)
16+
{
17+
return (sig->value_31_0 >> 25) & 1;
18+
}
19+
20+
struct rvfi_insn_srai_state_t
21+
{
22+
signal32_t rvfi_insn;
23+
signal32_t rvfi_rs1_rdata;
24+
signal1_t _abc_1398_n364;
25+
signal1_t _abc_1398_n363;
26+
};
27+
28+
void test(rvfi_insn_srai_state_t state, bool valid)
29+
{
30+
#ifndef HOTFIX
31+
state._abc_1398_n364.value_0_0 = yosys_simplec_get_bit_25_of_32(&state.rvfi_insn) ?
32+
yosys_simplec_get_bit_25_of_32(&state.rvfi_rs1_rdata) : state._abc_1398_n363.value_0_0;
33+
#else
34+
state._abc_1398_n364.value_0_0 = yosys_simplec_get_bit_25_of_32(&state.rvfi_insn) ?
35+
yosys_simplec_get_bit_25_of_32(&state.rvfi_rs1_rdata) : (bool)state._abc_1398_n363.value_0_0;
36+
#endif
37+
38+
assert(valid);
39+
}
40+
41+
int main(int argc, char* argv[])
42+
{
43+
rvfi_insn_srai_state_t state;
44+
bool valid;
45+
test(state, valid);
46+
return 0;
47+
}

regression/cbmc/cpp2/test.desc

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
KNOWNBUG
2+
main.cpp
3+
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
9+
^equality without matching types
10+
--
11+
This has been reported as #933.

regression/cpp/Apple_extensions1/main.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ void * _Nonnull p2;
55
// block pointer
66
void (^p3)(void);
77
#endif
8+
9+
int main(int argc, char* argv[])
10+
{
11+
}
+3-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
CORE
1+
KNOWNBUG
22
main.cpp
33

44
^EXIT=0$
55
^SIGNAL=0$
66
--
77
^warning: ignoring
88
^CONVERSION ERROR$
9+
--
10+
This is being tracked in #1647.

regression/cpp/Constant2/main.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <cassert>
2+
13
int const C=10;
24

35
int main()

regression/cpp/List_initialization1/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ int main()
2626
int y { 1 };
2727
x={ 1 };
2828
x=int { 1 };
29-
x=(int) { 1 }
29+
x=(int) { 1 };
3030
p=new int { 1 };
3131
some_function({1});
3232
}

regression/cpp/ModeC1/main.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
int cpp_f(int fkt_argument)
22
{
3+
return 0;
34
}
45

56
extern "C" void f(int fkt_argument)
@@ -27,4 +28,6 @@ int main()
2728
f(0);
2829
g(0);
2930
g(0L);
31+
32+
return 0;
3033
}

regression/cpp/Qualifiers_In_Template_Specialisation1/main.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
template <class T>
22
class c {
3+
public:
34
void fun (const T &arg);
45
};
56

@@ -9,7 +10,7 @@ void c<long int>::fun (const long int &arg) { return; }
910
int main(void) {
1011
c<long int> cl;
1112

12-
cl.fun();
13+
cl.fun(0);
1314

1415
return 0;
1516
}

regression/cpp/Resolver10/main.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <cassert>
2+
13
struct A
24
{
35
int i;
@@ -10,7 +12,7 @@ struct B: A
1012
{
1113
i = 1;
1214
A();
13-
assert(i==1);
15+
__CPROVER_assert(i==1, "");
1416
}
1517
};
1618

regression/cpp/Resolver11/main.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <cassert>
2+
13
struct A
24
{
35
bool func() { return false; }
@@ -17,7 +19,7 @@ struct A
1719
int main()
1820
{
1921
A a;
20-
assert(a.test()==false);
22+
__CPROVER_assert(a.test() == false, "");
2123
const A a2;
22-
assert(a2.test()==true);
24+
__CPROVER_assert(a2.test() == true, "");
2325
}

regression/cpp/Template_Instantiation2/main.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,8 @@ public :
66

77
template<>
88
int c<char>::f00(const char*);
9+
10+
int main(int argc, char* argv[])
11+
{
12+
return 0;
13+
}

regression/cpp/Template_Parameters1/main.ii renamed to regression/cpp/Template_Parameters1/main.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <cassert>
2+
13
// V depends on Ty
24
template<typename Ty, Ty V>
35
class T
@@ -10,6 +12,6 @@ T<int, 10> some_T;
1012

1113
int main()
1214
{
13-
assert(some_T.value==10);
15+
__CPROVER_assert(some_T.value == 10, "");
1416
}
1517

regression/cpp/Template_Parameters1/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CORE
2-
main.ii
2+
main.cpp
33

44
^EXIT=0$
55
^SIGNAL=0$

regression/cpp/Template_Specialisation2/main.ii

+3
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ struct __member_pointer_traits_imp<_Rp (_Class::*)() const>
1515
{
1616
};
1717

18+
int main(int argc, char* argv[])
19+
{
20+
}

regression/cpp/Trailing_Return_Type1/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.cpp
3-
3+
-std=c++11
44
^EXIT=0$
55
^SIGNAL=0$
66
--

regression/cpp/auto1/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
KNOWNBUG
22
main.cpp
3-
3+
-std=c++11
44
^EXIT=0$
55
^SIGNAL=0$
66
--

regression/cpp/enum8/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.cpp
3-
--std=c++11
3+
-std=c++11
44
^EXIT=0$
55
^SIGNAL=0$
66
--

regression/cpp/sizeof2/main.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ template <class T>
55
int size()
66
{
77
sizeof(T);
8+
return 0;
89
}
910

1011
int main()
1112
{
1213
size<int>();
14+
15+
return 0;
1316
}

regression/cpp/type_traits_essentials1/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ class X
5555

5656
int main(int argc, char* argv[])
5757
{
58-
X<> x;
58+
X<true> x;
5959
return x.val()?0:1;
6060
}

regression/cpp/type_traits_essentials1/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
KNOWNBUG
22
main.cpp
3-
3+
-std=c++11
44
^EXIT=0$
55
^SIGNAL=0$
66
--

regression/cpp/typecast_ambiguity2/main.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ int foo(int)
55

66
unsigned some_function(void)
77
{
8+
return 0;
89
}
910

1011
int main()

regression/cpp/virtual1/main.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
#include <stdio.h>
1+
#include <cassert>
2+
#include <cstdio>
3+
24
class base
35
{
46
public:
@@ -26,7 +28,7 @@ int main (void)
2628
base* D = new derived;
2729
int a = D->func();
2830
delete D;
29-
__CPROVER_assert(a == 2, "Property 1");
31+
assert(a == 2);
3032
return a;
3133
}
3234

regression/smt2_solver/CMakeLists.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
add_test_pl_tests(
2+
"$<TARGET_FILE:smt2_solver>"
3+
)

0 commit comments

Comments
 (0)