Нет, нет способа заставить gcc потерпеть неудачу, если заголовок не требуется.Включенные заголовки могут содержать почти все, поэтому предполагается, что у того, кто включил их, была веская причина для этого.Представьте себе следующий патологический случай:
int some_function(int x) {
#include "function_body.h"
return x;
}
Это, конечно, не очень хорошая форма, но она все равно скомпилируется, если вы удалите include.Таким образом, автоматическая проверка может объявить это «ненужным», даже если поведение, по-видимому, отличается, когда тело функции действительно там.