Вы должны полагаться на внешнюю среду для запуска набора тестов компиляции, например, make-файлов или заданий hudson, и проверять выходные данные компилятора или артефакты компилятора.Если предполагается, что компиляция не удалась, то не должно быть объектного файла для компилируемого файла.Я предполагаю, что вы могли бы написать плагин для Hudson, чтобы сделать это, или простой пакетный скрипт, который запускает make-файл, который компилирует все тестовые файлы, которые должны быть неудачными или успешными, и соответственно отмечать успехи или неудачи.
В простейшем случае вы просто проверите наличие файла '.o', чтобы увидеть, прошел ли ваш тест успешно, в более сложных случаях вы можете посмотреть на вывод компилятора и убедиться, что ошибкаЭто значит, что ошибка совпадает с ожидаемой вами ошибкой.Это будет зависеть от компилятора, который вы используете.
Переход на один уровень глубже, вероятно, будет означать написание расширения компилятора для этого (LLVM может справиться с тем, что вы просите)