Это старая статья. Потом, по ссылке, например, последний тест проводит бОльшую часть времени в system и конечная разница незначительна. При этом используется cilk который я бы не назвал типичным кодом на cpp. Поэтому делать вывод «g++ быстрее» преждевременно.
Правильным ответом будет «тестируй сам на своём коде и со своими флагами». У нас на разных программах разные результаты получаются. Но зато clang умеет диагностировать бОльшее кол-про проблем в коде, имхо.
Даже если не учитывать различных ошибок в компиляторе, то есть различная поддержка языковых конструкций, различная поддержка расширений, различная работа оптимизаций, хз чем они ещё различаться могут.
А все предупреждения вычищать не всегда нужно - частенько бывают или false-positive вообще, или false-positive в определённых режимах компиляции.
Но тем не менее собирать проект обоими компиляторами с максимальными предупреждениями и вычищать их действительно необходимо.
думаю, что сравнение двух компиляторов в вакууме некорректно.
надо гонять тесты на конкретной платформе. на некоторых архитектурах какие-то компиляторы лучше оптимизируют, какие-то хуже. к тому же, многое зависит от профиля самой софтины. может быть код, где хитрожопая оптимизация и не пригодится.
то есть различная поддержка языковых конструкций, различная поддержка расширений, различная работа оптимизаций, хз чем они ещё различаться могут.
clang имеет поддержку расширений gcc. Хотя, конечно же, лучше в их сторону даже не смотреть и писать по стандарту. Насчет оптимизаций - - в любом случае дебаг/релиз отличаются, хоть с gcc, хоть с clang.
Я как-то проверял (во времена clang-3.3) на своем
проекте. Мой проект собирается где-то 1.5 минуты с нуля,
и что clang, что gcc показывали одинаковое время +- пара секунд.
В обще какого-то особенного ускорения в компиляции или в скорости
компилируемого кода не нашел.
Единственное, в чем clang на порядок превосходил gcc это
«вменяемые» сообщения об ошибках при компилировании
кода на c++ со сложными шаблонами .