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(
727727}
728728
729729int 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)
732732{
733733 int fail=0 ;
734734 for (const auto &sym : linker_defined_symbols)
735735 if (linker_values.find (sym)==linker_values.end ())
736736 {
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));
741744 }
742745
743746 for (const auto &pair : linker_values)
Original file line number Diff line number Diff line change @@ -197,8 +197,8 @@ class linker_script_merget
197197 // / \return `1` if there is some mismatch between the list and map, `0` if
198198 // / everything is OK.
199199 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);
202202
203203 // / \brief Validate output of the `scripts/ls_parse.py` tool
204204 int linker_data_is_malformed (const jsont &data) const ;
You can’t perform that action at this time.
0 commit comments