Представьте, что следующая функция существует в статической библиотеке (* .a, * .lib):устранения Мертвого кода на коммутаторе заявлении
int func_foo(int i) {
switch (i) {
case 1:
return foo_bar();
case 2:
return foo_baz();
case 3:
return foo_bat();
default:
return -1;
}
}
Если пользователь этой библиотека вызывает эту функцию и передает только в 1
, сможет (или может) компилятор удалить вызовы на 2
и 3
?
Будет ли компилятор также удалять функции foo_baz()
и foo_bat()
, если на них нет ссылок на какие-либо другие функции (например, удаление мертвого кода)?
Как «пользователь этой библиотеки» глотает библиотеку? Ссылка на исходный код или какой-то готовый скомпилированный двоичный файл? –
Предположим, что это скомпилированная статическая библиотека (например, * .a или ее эквивалент). – MarkP