Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Dr. Michael Petter
LLVM-abstractinterpretation
Commits
da25a9cb
Verified
Commit
da25a9cb
authored
Apr 11, 2020
by
Tim Gymnich
Browse files
added sparse matrix
parent
c54342d7
Changes
17
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
da25a9cb
...
...
@@ -105,7 +105,7 @@ set(PAIN_SOURCES
src/simple_interval.cpp
src/normalized_conjunction.cpp
src/linear_equality.cpp
src/
affine_relation
.cpp
src/
linear_subspace
.cpp
)
set
(
PAIN_HEADERS
...
...
@@ -118,8 +118,9 @@ set(PAIN_HEADERS
src/global.h
src/abstract_state.h
src/hash_utils.h
src/affine_relation.h
src/matrix.h
src/linear_subspace.h
src/simple_matrix.h
src/sparse_matrix.h
)
include_directories
(
${
LLVM_INCLUDE_DIRS
}
)
...
...
@@ -134,6 +135,10 @@ add_llvm_library(llvm-pain MODULE
opt
)
#
# Tests
#
add_llvm_executable
(
simple_interval_test
test/simple_interval_test.cpp
${
PAIN_HEADERS
}
...
...
@@ -160,8 +165,8 @@ target_link_libraries(normalized_conjunction_test
${
LLVM_AVAILABLE_LIBS
}
)
add_llvm_executable
(
affine_relation
_test
test/
affine_relation
_test.cpp
add_llvm_executable
(
linear_subspace
_test
test/
linear_subspace
_test.cpp
${
PAIN_HEADERS
}
${
PAIN_SOURCES
}
DEPENDS
...
...
@@ -169,17 +174,27 @@ add_llvm_executable(affine_relation_test
intrinsics_gen
)
target_link_libraries
(
affine_relation
_test
target_link_libraries
(
linear_subspace
_test
${
LLVM_AVAILABLE_LIBS
}
)
add_llvm_executable
(
matrix_test
test/matrix_test.cpp
add_llvm_executable
(
simple_
matrix_test
test/
simple_
matrix_test.cpp
${
PAIN_HEADERS
}
${
PAIN_SOURCES
}
)
target_link_libraries
(
matrix_test
target_link_libraries
(
simple_matrix_test
${
LLVM_AVAILABLE_LIBS
}
)
add_llvm_executable
(
sparse_matrix_test
test/sparse_matrix_test.cpp
${
PAIN_HEADERS
}
${
PAIN_SOURCES
}
)
target_link_libraries
(
sparse_matrix_test
${
LLVM_AVAILABLE_LIBS
}
)
...
...
@@ -198,13 +213,21 @@ add_test(NAME normalizedConjunctionTest
)
add_test
(
NAME affineRelationTest
COMMAND
affine_relation
_test
COMMAND
linear_subspace
_test
)
add_test
(
NAME
m
atrixTest
COMMAND matrix_test
add_test
(
NAME
simpleM
atrixTest
COMMAND
simple_
matrix_test
)
add_test
(
NAME sparseMatrixTest
COMMAND sparse_matrix_test
)
#
# Samples
#
set
(
SAMPLES
add-1-float
add-1
...
...
@@ -248,6 +271,10 @@ set(SAMPLES
while-bigger-steps
while-neg
example-1
A
B
C
D
)
# Older CMake version do not support list transformations
...
...
samples/A.c
0 → 100644
View file @
da25a9cb
/*
* This is a RANDOMLY GENERATED PROGRAM.
*
* Generator: csmith 2.3.0
* Git version: 30dccd7
* Options: --output A.c --no-argc --no-arrays --no-bitfields --no-checksum --no-comma-operators --no-compound-assignment --no-divs --no-float --no-structs --no-unions --no-packed-struct --no-pointers --no-builtins --no-math64 --no-longlong --no-checksum --no-safe-math --max-block-size 2 --max-funcs 2
* Seed: 7117265377608335715
*/
#define NO_LONGLONG
#define int8_t signed char
#define uint8_t unsigned char
#define int16_t short
#define uint16_t unsigned short
#define int32_t int
#define uint32_t unsigned
#define int64_t long long
#define uint64_t unsigned long long
static
inline
void
platform_main_end
(
uint64_t
x
,
int
flag
)
{
#ifndef NOT_PRINT_CHECKSUM
if
(
!
flag
)
{
#ifdef NO_PRINTF
int
i
;
my_puts
(
"checksum = "
);
for
(
i
=
0
;
i
<
16
;
i
++
)
{
put_hex
(
x
&
0xf
);
x
>>=
4
;
}
putchar
(
'\n'
);
#else
printf
(
"checksum = %llx
\n
"
,
x
);
#endif
}
#endif
}
volatile
uint32_t
csmith_sink_
=
0
;
static
long
__undefined
;
/* --- Struct/Union Declarations --- */
/* --- GLOBAL VARIABLES --- */
static
int32_t
g_2
=
(
-
1
);
static
int32_t
g_3
=
0x245F1DBE
;
static
int16_t
g_62
=
0xE6DE
;
static
int32_t
g_65
=
0
;
static
int8_t
g_66
=
(
-
5
);
/* --- FORWARD DECLARATIONS --- */
static
uint16_t
func_1
(
void
);
static
int8_t
func_16
(
const
int16_t
p_17
,
uint8_t
p_18
,
int8_t
p_19
,
int32_t
p_20
,
uint32_t
p_21
);
/* --- FUNCTIONS --- */
/* ------------------------------------------ */
/*
* reads : g_2 g_3 g_66
* writes: g_3 g_62 g_65 g_66 g_2
*/
static
uint16_t
func_1
(
void
)
{
/* block id: 0 */
const
uint16_t
l_22
=
65526U
;
int32_t
l_32
=
(
-
1
);
g_2
=
((
g_3
=
g_2
)
&&
((
uint8_t
)(((((
g_66
=
((((
uint8_t
)
g_2
%
(
uint8_t
)((
uint16_t
)((
uint16_t
)(
0x8951
>=
(
-
1
))
>>
(
uint16_t
)((
int8_t
)(
g_65
=
((
int8_t
)
func_16
(
l_22
,
((
uint16_t
)(
l_32
=
(
l_22
&&
(
g_2
||
((
0U
^
((
uint16_t
)(((((
uint8_t
)((
uint8_t
)(
+
g_3
)
<<
(
uint8_t
)
3
)
>>
(
uint8_t
)
0
)
<=
0U
)
<=
g_3
)
<=
0xAF9CA3EA
)
+
(
uint16_t
)
g_2
))
==
l_22
))))
<<
(
uint16_t
)
g_3
),
l_22
,
g_2
,
g_2
)
>>
(
int8_t
)
g_2
))
>>
(
int8_t
)
l_22
))
>>
(
uint16_t
)
2
))
<=
g_2
)
&
0U
))
|
l_22
)
||
l_32
)
>
g_2
)
^
1
)
+
(
uint8_t
)
l_22
));
return
g_66
;
}
/* ------------------------------------------ */
/*
* reads : g_2 g_3
* writes: g_62 g_3
*/
static
int8_t
func_16
(
const
int16_t
p_17
,
uint8_t
p_18
,
int8_t
p_19
,
int32_t
p_20
,
uint32_t
p_21
)
{
/* block id: 3 */
uint32_t
l_35
=
4294967293U
;
uint16_t
l_41
=
1U
;
int32_t
l_61
=
0xBF2A6BC6
;
int32_t
l_63
=
4
;
int32_t
l_64
=
0x4FFA2B87
;
g_3
=
(((
uint8_t
)(((
l_35
&&
((
int16_t
)(
!
l_35
)
+
(
int16_t
)((
uint16_t
)(((
0x6D23205E
<=
(
l_64
=
((
l_63
=
((
l_41
=
p_19
)
||
((
int32_t
)((
int16_t
)(
g_62
=
((
int8_t
)(((((
uint8_t
)((
int16_t
)((
p_19
=
p_20
)
^
0U
)
-
(
int16_t
)(((
int16_t
)
0xCCFE
>>
(
int16_t
)
8
)
<
g_2
))
<<
(
uint8_t
)((
uint16_t
)(((
l_61
=
((
int8_t
)((
int8_t
)(
!
p_18
)
-
(
int8_t
)
g_3
)
>>
(
int8_t
)
5
))
&&
l_35
)
&
p_20
)
<<
(
uint16_t
)
1
))
!=
0xD9
)
<=
l_35
)
>
1
)
%
(
int8_t
)
g_2
))
*
(
int16_t
)
p_18
)
+
(
int32_t
)
p_20
)))
&
l_35
)))
==
p_17
)
||
p_20
)
<<
(
uint16_t
)
g_2
)))
==
g_3
)
&&
0x412C2192
)
-
(
uint8_t
)
9
)
>
p_21
);
return
p_21
;
}
/* ---------------------------------------- */
int
main
(
void
)
{
int
print_hash_value
=
0
;
platform_main_begin
();
func_1
();
csmith_sink_
=
g_2
;
csmith_sink_
=
g_3
;
csmith_sink_
=
g_62
;
csmith_sink_
=
g_65
;
csmith_sink_
=
g_66
;
platform_main_end
(
0
,
0
);
return
0
;
}
/************************ statistics *************************
XXX max struct depth: 0
breakdown:
depth: 0, occurrence: 12
XXX total union variables: 0
XXX max expression depth: 35
breakdown:
depth: 1, occurrence: 4
depth: 35, occurrence: 2
XXX total number of pointers: 0
XXX times a non-volatile is read: 41
XXX times a non-volatile is write: 12
XXX times a volatile is read: 0
XXX times read thru a pointer: 0
XXX times a volatile is write: 0
XXX times written thru a pointer: 0
XXX times a volatile is available for access: 0
XXX percentage of non-volatile access: 100
XXX forward jumps: 0
XXX backward jumps: 0
XXX stmts: 4
XXX max block depth: 0
breakdown:
depth: 0, occurrence: 4
XXX percentage a fresh-made variable is used: 22.6
XXX percentage an existing variable is used: 77.4
********************* end of statistics **********************/
samples/B.c
0 → 100644
View file @
da25a9cb
/*
* This is a RANDOMLY GENERATED PROGRAM.
*
* Generator: csmith 2.3.0
* Git version: 30dccd7
* Options: --output B.c --no-argc --no-arrays --no-bitfields --no-checksum --no-comma-operators --no-compound-assignment --no-divs --no-float --no-structs --no-unions --no-packed-struct --no-pointers --no-builtins --no-math64 --no-longlong --no-checksum --no-safe-math --max-block-size 2 --max-funcs 4
* Seed: 2537522965051140364
*/
#define NO_LONGLONG
#define int8_t signed char
#define uint8_t unsigned char
#define int16_t short
#define uint16_t unsigned short
#define int32_t int
#define uint32_t unsigned
#define int64_t long long
#define uint64_t unsigned long long
static
inline
void
platform_main_end
(
uint64_t
x
,
int
flag
)
{
#ifndef NOT_PRINT_CHECKSUM
if
(
!
flag
)
{
#ifdef NO_PRINTF
int
i
;
my_puts
(
"checksum = "
);
for
(
i
=
0
;
i
<
16
;
i
++
)
{
put_hex
(
x
&
0xf
);
x
>>=
4
;
}
putchar
(
'\n'
);
#else
printf
(
"checksum = %llx
\n
"
,
x
);
#endif
}
#endif
}
volatile
uint32_t
csmith_sink_
=
0
;
static
long
__undefined
;
/* --- Struct/Union Declarations --- */
/* --- GLOBAL VARIABLES --- */
static
uint32_t
g_6
=
0x964A53AA
;
static
uint32_t
g_74
=
4294967292U
;
static
int16_t
g_75
=
3
;
static
uint16_t
g_79
=
1U
;
static
uint32_t
g_95
=
0U
;
static
int32_t
g_106
=
0x4023A1BF
;
static
int32_t
g_116
=
0x105BA918
;
static
int32_t
g_139
=
0xB1B1B7DE
;
static
uint16_t
g_168
=
0x385D
;
static
int16_t
g_204
=
5
;
static
uint16_t
g_209
=
0x5A12
;
static
int32_t
g_233
=
(
-
1
);
static
uint16_t
g_268
=
0U
;
static
volatile
int32_t
g_296
=
2
;
/* VOLATILE GLOBAL g_296 */
static
uint32_t
g_298
=
6U
;
/* --- FORWARD DECLARATIONS --- */
static
int32_t
func_1
(
void
);
static
uint8_t
func_8
(
uint32_t
p_9
,
uint32_t
p_10
,
int32_t
p_11
,
int16_t
p_12
,
int8_t
p_13
);
static
int32_t
func_15
(
uint32_t
p_16
,
uint32_t
p_17
,
int8_t
p_18
,
uint16_t
p_19
);
static
int8_t
func_20
(
uint16_t
p_21
,
uint32_t
p_22
,
uint32_t
p_23
);
/* --- FUNCTIONS --- */
/* ------------------------------------------ */
/*
* reads : g_6 g_74 g_75 g_79 g_95 g_116 g_106 g_139 g_168 g_204 g_209 g_233 g_268 g_296
* writes: g_75 g_79 g_95 g_106 g_74 g_116 g_139 g_168 g_204 g_209 g_233 g_268 g_298
*/
static
int32_t
func_1
(
void
)
{
/* block id: 0 */
uint32_t
l_7
=
0x3099CFE0
;
int32_t
l_14
=
0x7BEDEDB5
;
int32_t
l_36
=
(
-
5
);
int32_t
l_37
=
0xD76270E7
;
int32_t
l_38
=
(
-
1
);
uint32_t
l_39
=
0x26A9D9E1
;
uint8_t
l_203
=
0x4E
;
uint32_t
l_234
=
0U
;
g_139
=
((
int8_t
)((
int8_t
)(
l_7
=
g_6
)
-
(
int8_t
)
func_8
(
g_6
,
l_14
,
(
g_79
=
func_15
(
g_6
,
g_6
,
func_20
(((((
int16_t
)((
int8_t
)
l_14
>>
(
int8_t
)
1
)
*
(
int16_t
)((
int8_t
)((
int8_t
)((
l_38
=
((
l_37
=
((
uint32_t
)((
uint16_t
)((
l_36
=
g_6
)
>
g_6
)
+
(
uint16_t
)
1
)
-
(
uint32_t
)
g_6
))
>
0x53A38D06
))
>=
l_14
)
<<
(
int8_t
)
0
)
%
(
int8_t
)
g_6
))
|
g_6
)
==
l_39
),
l_39
,
g_6
),
g_6
)),
l_14
,
l_14
))
-
(
int8_t
)
1U
);
if
(((
uint32_t
)
g_6
-
(
uint32_t
)
l_36
))
{
/* block id: 59 */
int8_t
l_161
=
0xCE
;
g_116
=
((
int16_t
)(
g_106
||
0xB671
)
>>
(
int16_t
)
9
);
if
((
l_37
=
((
uint16_t
)
g_6
+
(
uint16_t
)(
9U
!=
((
uint8_t
)(
g_168
=
((
int8_t
)(
-
(
uint32_t
)((
int8_t
)(((
uint16_t
)(((
int8_t
)((
uint8_t
)
0x57
*
(
uint8_t
)(((
g_139
&&
(((
g_106
==
((
int8_t
)((
l_37
<
l_161
)
<
((
uint32_t
)(((
int32_t
)(
g_95
>=
((
int32_t
)(
g_116
=
(
g_74
&
l_161
))
-
(
int32_t
)
4294967290U
))
-
(
int32_t
)
1
)
||
9U
)
+
(
uint32_t
)
l_161
))
>>
(
int8_t
)
4
))
!=
l_161
)
<=
l_38
))
||
0x3E
)
<=
0x93B69C79
))
%
(
int8_t
)
g_106
)
==
0U
)
+
(
uint16_t
)
3
)
||
g_75
)
<<
(
int8_t
)
6
))
>>
(
int8_t
)
5
))
+
(
uint8_t
)
g_75
)))))
{
/* block id: 64 */
int32_t
l_171
=
1
;
g_106
=
((
uint8_t
)
l_171
<<
(
uint8_t
)
4
);
}
else
{
/* block id: 66 */
return
g_168
;
}
}
else
{
/* block id: 69 */
uint8_t
l_201
=
250U
;
int32_t
l_205
=
0x5094A51A
;
int32_t
l_215
=
6
;
int32_t
l_287
=
0xAE1B71C9
;
int32_t
l_297
=
0
;
if
(
g_106
)
{
/* block id: 70 */
int16_t
l_184
=
0x6D60
;
int16_t
l_202
=
(
-
9
);
int32_t
l_225
=
0x87346C39
;
int32_t
l_235
=
0x077A8CD5
;
if
(((((
g_6
!=
((
int16_t
)((
uint32_t
)
g_139
-
(
uint32_t
)(
l_205
=
(
g_204
=
(
g_74
=
((
int32_t
)((
int32_t
)(((
l_14
=
((
uint8_t
)(
l_38
=
((
int16_t
)
l_184
+
(
int16_t
)
g_6
))
%
(
uint8_t
)((
int16_t
)(
l_202
=
((
int16_t
)((((
int8_t
)((
uint8_t
)(((
int16_t
)(
l_37
=
(((
int32_t
)((((
uint16_t
)
0x42E7
<<
(
uint16_t
)(
l_184
&&
0xF7E8
))
>
(((
uint8_t
)
l_184
>>
(
uint8_t
)
3
)
&&
g_116
))
<=
l_201
)
+
(
int32_t
)
g_79
)
<=
g_95
))
>>
(
int16_t
)
l_184
)
<
0x52EA
)
-
(
uint8_t
)
g_116
)
*
(
int8_t
)
l_201
)
&
0xBA
)
|
0
)
*
(
int16_t
)
0x072C
))
-
(
int16_t
)
1U
)))
!=
l_203
)
==
g_79
)
%
(
int32_t
)
g_74
)
+
(
int32_t
)
g_95
)))))
*
(
int16_t
)
l_39
))
!=
g_139
)
==
g_75
)
!=
g_116
))
{
/* block id: 78 */
g_116
=
(
-
3
);
}
else
{
/* block id: 80 */
for
(
g_95
=
0
;
(
g_95
<=
11
);
g_95
+=
1
)
{
/* block id: 83 */
const
int32_t
l_208
=
0x5ADCE77D
;
g_209
=
(
l_208
<=
g_168
);
}
}
l_38
=
(
l_235
=
(
!
((
uint8_t
)((
int8_t
)(((
l_215
<=
((
int16_t
)(
249U
^
(((
uint16_t
)(((
int16_t
)(
g_74
||
(
~
((
int8_t
)(
g_233
=
((((
l_225
=
l_37
)
||
g_204
)
&&
g_106
)
^
((
int8_t
)(((
int8_t
)
g_75
%
(
int8_t
)((
int16_t
)
g_139
>>
(
int16_t
)
12
))
^
(
-
(
uint16_t
)(
g_79
&&
g_6
)))
>>
(
int8_t
)
g_6
)))
<<
(
int8_t
)
3
)))
+
(
int16_t
)
1U
)
<=
0xE64536AC
)
*
(
uint16_t
)
g_204
)
==
g_116
))
*
(
int16_t
)
g_75
))
<=
0xE7461C8C
)
!=
l_184
)
<<
(
int8_t
)
3
)
>>
(
uint8_t
)
l_234
)));
}
else
{
/* block id: 91 */
return
l_205
;
}
if
(((
uint32_t
)
g_79
-
(
uint32_t
)
g_74
))
{
/* block id: 94 */
uint32_t
l_255
=
0x295DAE69
;
int32_t
l_269
=
0xEBDA9155
;
l_205
=
((
int32_t
)(((
int16_t
)(((
int8_t
)((
~
(((
int16_t
)((
l_205
&&
g_116
)
==
((
int8_t
)((
uint16_t
)((
g_106
=
(((
uint8_t
)((
int16_t
)(
g_204
=
l_255
)
*
(
int16_t
)((
l_269
=
((
int32_t
)((
l_201
|
(((
0x62
|
(
g_209
|
((((
uint16_t
)((
int8_t
)((
uint8_t
)(
g_268
=
(((((
uint8_t
)((
int8_t
)(
l_215
>
l_255
)
%
(
int8_t
)
g_233
)
-
(
uint8_t
)
0xBC
)
<
1U
)
||
(
-
1
))
>=
g_116
))
%
(
uint8_t
)
g_95
)
%
(
int8_t
)
g_75
)
<<
(
uint16_t
)
l_255
)
&&
g_79
)
<=
(
-
1
))))
||
0xD10CE58A
)
>=
l_39
))
&
l_255
)
%
(
int32_t
)
l_255
))
&&
g_139
))
+
(
uint8_t
)
0x85
)
&&
4294967295U
))
|
l_201
)
+
(
uint16_t
)
0xD827
)
*
(
int8_t
)
g_6
))
+
(
int16_t
)
l_201
)
<
g_233
))
&&
0x87BBF4A9
)
<<
(
int8_t
)
1
)
==
g_168
)
*
(
int16_t
)
g_95
)
&&
g_268
)
+
(
int32_t
)
l_234
);
g_116
=
g_139
;
}
else
{
/* block id: 101 */
uint32_t
l_277
=
4294967295U
;
g_116
=
((
uint8_t
)(
g_298
=
((
l_297
=
((
uint8_t
)(
~
((
uint16_t
)(((
g_106
=
(
l_277
=
0x7E71CC03
))
>=
(
+
(((((
uint8_t
)(
l_203
^
4U
)
*
(
uint8_t
)((
int8_t
)((
uint8_t
)((
uint8_t
)(
l_205
=
l_234
)
*
(
uint8_t
)
0U
)
+
(
uint8_t
)((
l_287
=
(
l_14
=
g_139
))
>=
(
0
<=
((
uint16_t
)
7U
>>
(
uint16_t
)
11
))))
<<
(
int8_t
)
1
))
==
((
uint32_t
)((
int8_t
)((
uint32_t
)((
0xECE6
>
l_201
)
&
g_168
)
-
(
uint32_t
)
g_6
)
%
(
int8_t
)
l_201
)
+
(
uint32_t
)
g_296
))
||
g_204
)
==
0x3FA2BBC1
)))
!=
0x824737F3
)
<<
(
uint16_t
)
g_168
))
>>
(
uint8_t
)
l_37
))
<
g_204
))
-
(
uint8_t
)
l_215
);
}
}
return
l_36
;
}
/* ------------------------------------------ */
/*
* reads : g_79 g_6 g_74 g_75 g_95 g_116
* writes: g_95 g_106 g_74 g_75 g_116
*/
static
uint8_t
func_8
(
uint32_t
p_9
,
uint32_t
p_10
,
int32_t
p_11
,
int16_t
p_12
,
int8_t
p_13
)
{
/* block id: 25 */
uint32_t
l_98
=
1U
;
int32_t
l_107
=
0x1B5D7EC3
;
int32_t
l_108
=
1
;
uint32_t
l_130
=
0U
;
int8_t
l_132
=
0x9F
;
l_108
=
((
uint8_t
)
p_13
%
(
uint8_t
)(((
uint8_t
)((
int8_t
)((
uint16_t
)((((
l_107
=
((
uint16_t
)
p_10
<<
(
uint16_t
)((((
-
(
int8_t
)(((
int8_t
)(
p_10
^
((
g_95
=
((
int8_t
)
0x6C
>>
(
int8_t
)
2
))
^
((
int16_t
)(((
g_79
<=
(
-
1
))
>=
l_98
)
&
((
uint8_t
)
p_12
*
(
uint8_t
)((
g_106
=
((((((
uint16_t
)(((
uint16_t
)(
~
l_98
)
+
(
uint16_t
)
p_13
)
<
p_11
)
*
(
uint16_t
)
p_10
)
>
g_6
)
&
0x87233ED7
)
^
g_6
)
>=
0xE5
))
>
p_11
)))
<<
(
int16_t
)
p_10
)))
<<
(
int8_t
)
l_98
)
&
2
))
|
p_9
)
||
p_10
)
|
0x83BD
)))
<
l_98
)
^
l_98
)
==
p_13
)
+
(
uint16_t
)
l_98
)
<<
(
int8_t
)
3
)
<<
(
uint8_t
)
4
)
&&
1
));
if
(
p_9
)
{
/* block id: 30 */
for
(
p_11
=
24
;
(
p_11
==
14
);
--
p_11
)
{
/* block id: 33 */
if
(
p_9
)
break
;
g_106
=
p_10
;
}
}
else
{
/* block id: 37 */
for
(
g_74
=
0
;
(
g_74
>
46
);
g_74
++
)
{
/* block id: 40 */
int16_t
l_129
=
0xED4C
;
for
(
g_75
=
0
;
(
g_75
<
12
);
g_75
+=
1
)
{
/* block id: 43 */
const
uint8_t
l_131
=
0x0C
;
g_106
=
(
0x7436
&&
((((
+
(
g_75
!=
((((
0x20E1BCB0
&
(
g_116
=
g_95
))
|
(
4
>
(((
int16_t
)((
int16_t
)(((
uint16_t
)((
uint32_t
)((
uint32_t
)(((
uint16_t
)
6U
-
(
uint16_t
)((((((
-
1
)
<=
l_129
)
>=
(((((
l_130
=
l_108
)
^
1
)
<
1
)
^
g_95
)
<=
l_131
))
^
p_10
)
&&
3U
)
>=
l_108
))
==
p_11
)
+
(
uint32_t
)
p_11
)
%
(
uint32_t
)
p_11
)
*
(
uint16_t
)
p_12
)
>=
4U
)
>>
(
int16_t
)
g_74
)
>>
(
int16_t
)
15
)
||
l_129
)))
!=
0xE99C
)
==
l_131
)))
>
l_132
)
!=
g_79
)
==
l_132
));
g_116
=
(((
uint8_t
)((
int8_t
)(
g_116
==
p_11
)
+
(
int8_t
)
p_10
)
-
(
uint8_t
)
l_131
)
^
l_129
);
}
}
for
(
p_13
=
(
-
19
);
(
p_13
!=
(
-
2
));
p_13
++
)
{
/* block id: 52 */
l_108
=
g_95
;
return
l_107
;
}
}
return
l_107
;
}
/* ------------------------------------------ */
/*
* reads : g_6 g_74 g_75
* writes: g_75
*/
static
int32_t
func_15
(
uint32_t
p_16
,
uint32_t
p_17
,
int8_t
p_18
,
uint16_t
p_19
)
{
/* block id: 10 */
uint32_t
l_50
=
0x2097756E
;
int32_t
l_76
=
(
-
1
);
if
((
l_50
=
(
p_18
<
g_6
)))
{
/* block id: 12 */
int8_t
l_51
=
(
-
4
);
int32_t
l_56
=
(
-
3
);
int32_t
l_77
=
0xD7B9758A
;
l_51
=
g_6
;
l_77
=
(
l_76
=
((
uint16_t
)
0x0270
*
(
uint16_t
)((
int32_t
)(
g_6
>
((((
l_56
=
g_6
)
^
((
uint8_t
)
g_6
>>
(
uint8_t
)(
p_18
=
(
g_75
=
(
0xBB
<=
(((
uint8_t
)
0xB0
*
(
uint8_t
)(((
int8_t
)((
int8_t
)(((
int8_t
)(
~
(((((((
int16_t
)((
uint8_t
)((
uint16_t
)(
p_19
=
(
p_17
>
l_51
))
<<
(
uint16_t
)
13
)
-
(
uint8_t
)
p_18
)
<<
(
int16_t
)
l_50
)
<
g_6
)
^
0x88841F9F
)
&&
g_74
)
>
p_16
)
&&
0x6485393F
))
+
(
int8_t
)
g_74
)
>=
4U
)
*
(
int8_t
)
p_16
)
>>
(
int8_t
)
1
)
&
p_17
))
==
p_16
))))))
&
l_50
)
&&
g_75
))
-
(
int32_t
)
g_74
)));
}
else
{
/* block id: 20 */
uint32_t
l_78
=
4294967293U
;
l_78
=
0xA659E808
;
}
return
p_18
;
}
/* ------------------------------------------ */
/*
* reads : g_6
* writes:
*/
static
int8_t
func_20
(
uint16_t
p_21
,
uint32_t
p_22
,
uint32_t
p_23
)
{
/* block id: 5 */
uint16_t
l_46
=
0x91CB
;
int32_t
l_47
=
0x1CAF1E2C
;
int32_t
l_48
=
0xE7BAA9D7
;
int32_t
l_49
=
0x3FD90538
;
l_49
=
(((
int16_t
)(
p_22
!=
(((
int8_t
)((
l_46
^
((((((
l_47
=
1U
)
!=
((
g_6
>=
l_46
)
>=
(
0U
&
(
g_6
|
p_23
))))
<
((
l_48
=
(
0x24B13B10
<=
p_23
))
>
p_23
))
==
p_23
)
^
l_46
)
||
g_6
))
&
p_23
)
%
(
int8_t
)
g_6
)
|
0
))
>>
(
int16_t
)
l_46
)
^
l_46
);
return
g_6
;
}
/* ---------------------------------------- */
int
main
(
void
)
{
int
print_hash_value
=
0
;
platform_main_begin
();
func_1
();
csmith_sink_
=
g_6
;
csmith_sink_
=
g_74
;
csmith_sink_
=
g_75
;
csmith_sink_
=
g_79
;
csmith_sink_
=
g_95
;
csmith_sink_
=
g_106
;
csmith_sink_
=
g_116
;
csmith_sink_
=
g_139
;
csmith_sink_
=
g_168
;
csmith_sink_
=
g_204
;
csmith_sink_
=
g_209
;
csmith_sink_
=
g_233
;
csmith_sink_
=
g_268
;
csmith_sink_
=
g_296
;
csmith_sink_
=
g_298
;
platform_main_end
(
0
,
0
);
return
0
;
}
/************************ statistics *************************
XXX max struct depth: 0
breakdown:
depth: 0, occurrence: 55
XXX total union variables: 0
XXX max expression depth: 40
breakdown:
depth: 1, occurrence: 34
depth: 2, occurrence: 9
depth: 3, occurrence: 2
depth: 5, occurrence: 1
depth: 21, occurrence: 1
depth: 25, occurrence: 1
depth: 29, occurrence: 1
depth: 30, occurrence: 2
depth: 31, occurrence: 2
depth: 34, occurrence: 1
depth: 36, occurrence: 1
depth: 40, occurrence: 1
XXX total number of pointers: 0
XXX times a non-volatile is read: 210
XXX times a non-volatile is write: 65
XXX times a volatile is read: 1
XXX times read thru a pointer: 0
XXX times a volatile is write: 0
XXX times written thru a pointer: 0
XXX times a volatile is available for access: 2
XXX percentage of non-volatile access: 99.6
XXX forward jumps: 0
XXX backward jumps: 0
XXX stmts: 38
XXX max block depth: 4
breakdown:
depth: 0, occurrence: 10
depth: 1, occurrence: 10
depth: 2, occurrence: 13
depth: 3, occurrence: 4
depth: 4, occurrence: 1
XXX percentage a fresh-made variable is used: 20.5
XXX percentage an existing variable is used: 79.5
********************* end of statistics **********************/
samples/C.c
0 → 100644
View file @
da25a9cb
/*
* This is a RANDOMLY GENERATED PROGRAM.
*
* Generator: csmith 2.3.0
* Git version: 30dccd7
* Options: --output C.c --no-argc --no-arrays --no-bitfields --no-checksum --no-comma-operators --no-compound-assignment --no-divs --no-float --no-structs --no-unions --no-packed-struct --no-pointers --no-builtins --no-math64 --no-longlong --no-checksum --no-safe-math --max-block-size 4 --max-funcs 2
* Seed: 4773875934381650930
*/
#define NO_LONGLONG
#define int8_t signed char
#define uint8_t unsigned char
#define int16_t short
#define uint16_t unsigned short
#define int32_t int
#define uint32_t unsigned
#define int64_t long long
#define uint64_t unsigned long long
static
inline
void
platform_main_end
(
uint64_t
x
,
int
flag
)
{
#ifndef NOT_PRINT_CHECKSUM
if
(
!
flag
)
{
#ifdef NO_PRINTF
int
i
;
my_puts
(
"checksum = "
);
for
(
i
=
0
;
i
<
16
;
i
++
)
{
put_hex
(
x
&
0xf
);
x
>>=
4
;
}
putchar
(
'\n'
);
#else
printf
(
"checksum = %llx
\n
"
,
x
);
#endif
}
#endif
}
volatile
uint32_t
csmith_sink_
=
0
;
static
long
__undefined
;