Skip to content

Commit d5faf50

Browse files
committed
Non-deterministic initialisation of argc/argv/envp
1 parent 6882da6 commit d5faf50

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

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
@@ -69,11 +69,7 @@ bool static_lifetime_init(
6969
identifier==CPROVER_PREFIX "memory" ||
7070
identifier=="__func__" ||
7171
identifier=="__FUNCTION__" ||
72-
identifier=="__PRETTY_FUNCTION__" ||
73-
identifier=="argc'" ||
74-
identifier=="argv'" ||
75-
identifier=="envp'" ||
76-
identifier=="envp_size'")
72+
identifier=="__PRETTY_FUNCTION__")
7773
continue;
7874

7975
// just for linking

0 commit comments

Comments
 (0)