File tree Expand file tree Collapse file tree 2 files changed +11
-8
lines changed Expand file tree Collapse file tree 2 files changed +11
-8
lines changed Original file line number Diff line number Diff line change @@ -727,17 +727,20 @@ int linker_script_merget::get_linker_script_data(
727
727
}
728
728
729
729
int linker_script_merget::goto_and_object_mismatch (
730
- const std::list<irep_idt> &linker_defined_symbols,
731
- const linker_valuest &linker_values)
730
+ const std::list<irep_idt> &linker_defined_symbols,
731
+ linker_valuest &linker_values)
732
732
{
733
733
int fail=0 ;
734
734
for (const auto &sym : linker_defined_symbols)
735
735
if (linker_values.find (sym)==linker_values.end ())
736
736
{
737
- fail=1 ;
738
- log.error () << " Variable '" << sym
739
- << " ' was declared extern but never given "
740
- << " a value, even in a linker script" << messaget::eom;
737
+ log.warning () << " Variable '" << sym
738
+ << " ' was declared extern but never given a value, even in "
739
+ << " a linker script" << messaget::eom;
740
+
741
+ null_pointer_exprt null_pointer (pointer_type (char_type ()));
742
+ symbol_exprt null_sym (sym, pointer_type (char_type ()));
743
+ linker_values.emplace (sym, std::make_pair (null_sym, null_pointer));
741
744
}
742
745
743
746
for (const auto &pair : linker_values)
Original file line number Diff line number Diff line change @@ -197,8 +197,8 @@ class linker_script_merget
197
197
// / \return `1` if there is some mismatch between the list and map, `0` if
198
198
// / everything is OK.
199
199
int goto_and_object_mismatch (
200
- const std::list<irep_idt> &linker_defined_symbols,
201
- const linker_valuest &linker_values);
200
+ const std::list<irep_idt> &linker_defined_symbols,
201
+ linker_valuest &linker_values);
202
202
203
203
// / \brief Validate output of the `scripts/ls_parse.py` tool
204
204
int linker_data_is_malformed (const jsont &data) const ;
You can’t perform that action at this time.
0 commit comments