Skip to content

Commit 52598a1

Browse files
committed
Non-deterministic initialisation of argc/argv/envp
1 parent b0d28c8 commit 52598a1

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

regression/goto-instrument/print_global_state_size1/main.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
uint32_t some_global_var;
44
int8_t other_global_var;
55

6-
int main(int argc, char *argv[])
6+
int main()
77
{
88
return 0;
99
}

src/ansi-c/c_typecheck_argc_argv.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ void c_typecheck_baset::add_argc_argv(const symbolt &main_symbol)
4242
argc_symbol.type=op0.type();
4343
argc_symbol.is_static_lifetime=true;
4444
argc_symbol.is_lvalue=true;
45+
argc_symbol.value = side_effect_expr_nondett(op0.type());
4546

4647
if(argc_symbol.type.id()!=ID_signedbv &&
4748
argc_symbol.type.id()!=ID_unsignedbv)
@@ -81,6 +82,7 @@ void c_typecheck_baset::add_argc_argv(const symbolt &main_symbol)
8182
argv_symbol.type=argv_type;
8283
argv_symbol.is_static_lifetime=true;
8384
argv_symbol.is_lvalue=true;
85+
argv_symbol.value = side_effect_expr_nondett(argv_type);
8486

8587
symbolt *argv_new_symbol;
8688
move_symbol(argv_symbol, argv_new_symbol);
@@ -99,6 +101,7 @@ void c_typecheck_baset::add_argc_argv(const symbolt &main_symbol)
99101
envp_size_symbol.name="envp_size'";
100102
envp_size_symbol.type=op0.type(); // same type as argc!
101103
envp_size_symbol.is_static_lifetime=true;
104+
envp_size_symbol.value = side_effect_expr_nondett(op0.type());
102105
move_symbol(envp_size_symbol, envp_new_size_symbol);
103106

104107
if(envp_symbol.type.id()!=ID_pointer)
@@ -113,6 +116,7 @@ void c_typecheck_baset::add_argc_argv(const symbolt &main_symbol)
113116

114117
envp_symbol.type.id(ID_array);
115118
envp_symbol.type.add(ID_size).swap(size_expr);
119+
envp_symbol.value = side_effect_expr_nondett(envp_symbol.type);
116120

117121
symbolt *envp_new_symbol;
118122
move_symbol(envp_symbol, envp_new_symbol);

src/linking/static_lifetime_init.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,7 @@ void static_lifetime_init(
6868
identifier==CPROVER_PREFIX "memory" ||
6969
identifier=="__func__" ||
7070
identifier=="__FUNCTION__" ||
71-
identifier=="__PRETTY_FUNCTION__" ||
72-
identifier=="argc'" ||
73-
identifier=="argv'" ||
74-
identifier=="envp'" ||
75-
identifier=="envp_size'")
71+
identifier=="__PRETTY_FUNCTION__")
7672
continue;
7773

7874
// just for linking

0 commit comments

Comments
 (0)