Сегодня обнаружил в MS VS/VC забавный глюк. Если указать компилятору ключ /GL (link-time code generation), то ключи /FAs, /FAc, /FAsc перестают создавать ассемблерные листинги. Наблюдается с компиляторами с 13.00 до 19.28 (из последней VS 2019). Логика этого совершенно непонятна, но вот так.
Но, если компилятор запускается из-под студии, то в конфигурациях "Application" и "DLL" ассемблерные листинги волшебным образом создаются, а вот в конфигурации "Static library" — нет. Понятно, что библиотеке LTCG, как правило, не нужно, а нередко и вредно, но я на автомате включил LTCG для всех проектов, после чего обнаружил, что листинги библиотеки перестали создаваться.
Командные строки компилятора идентичны с точностью до автоматически вставляемых студией определений вроде "/D_WINDLL". Если скопировать командную строку из лога студии и подсунуть ее CL, хоть непосредственно, хоть в RSP-файле — листинги не создаются, если присутствует /GL. Когда компилятор запускается студией с той же командной строкой — создаются.
Такое впечатление, что студия определяет какие-то переменные окружения, на которые реагирует компилятор. Вот только зачем вся эта шняга —

.