LINUX.ORG.RU

В чём смысл этого?

 , ,


0

3

Привет, ЛОР!

Столкнулся тут с интересной фигнёй. Clang выдаёт предупреждение по поводу неиспользуемых аргументов командной строки. И это, естественно, гробит сборку при использовании -Werror.

Вопрос: нахрена это? Чтобы что? Как это делает хоть чью-то жизнь лучше?

UPD: чтобы развеять завесу непонимания, пример того, что вылезло у меня:

clang: error: argument unused during compilation: ‘-pie’ [-Werror,-Wunused-command-line-argument]

Выдается если отдельно собирать объектники без линковки. Т.е. что-то типа clang -o file.o -c -pie -fpie null.c.

★★★★★

Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от LamerOk

Но тут есть ошибка.

Нет, нету. Ты так и не привёл ни одного примера, где это могло бы привести к некорректному результату.

Если gcc её молча проглатывает, это не значит, что остальные компиляторы должны вести себя настолько же плохо.

MSVC тоже не жалуется при вызове с /c /LIBPATH:C:\ /Wall /WX.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

Ты так и не привёл ни одного примера, где это могло бы привести к некорректному результату.

Ну приведи пример, где вызов с указанием несуществующего файла на диске приведёт к «некорректному результату».

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Ты так и не привёл ни одного примера, где это могло бы привести к некорректному результату.

Ну приведи пример, где вызов с указанием несуществующего файла на диске приведёт к «некорректному результату».

Я не очень понимаю, из чьей именно жопы ты выковырял про несуществующий файл и зачем ты с ним носишься. Больше идей нету?

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от LamerOk

Больше идей нету?

Ты пока с этой разберись.

Зачем? Это очень тупая идея, которую ты притащил и пытаешься ей оправдать то, что тебе говорят голоса в твоей голове. Она довольно бессмысленна и на неё и так потрачено гораздо больше времени, чем следовало бы.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от a1ba

Пример валидных аргументов, переданных не той функции: ты запланировал вечерок провести в баре, надраться, снять фирменную телку (они там все фирменные, потому что бар дорогой). Садишься в такси и говоришь «Бар Фу, литр водки и девку». И таксист достает из бардачка бутылку теплой водки за двести рублей и находит тебе девку в ближайшем шалмане, куда ходит он сам.

Irma ★★
()
Ответ на: комментарий от Irma

Или еще хуже: сначала он тебя отвозит в бар, ты там элитно надираешься, снимаешь Мерилин Монро, а на выходе тебя ждет таксист с водярой и крокодилом. А у тебя обработка ошибок не прописана.

Irma ★★
()
Последнее исправление: Irma (всего исправлений: 1)
Ответ на: комментарий от a1ba

Ммм… Ну тогда так: он привозит тебя в бар, и ты там тупо сидишь, потому что аргументы ты уже выдал, только вот бармен их не получал.

Или так: эй, водила, сделай мне бар, водки и девок, но девок не из бара, а из соседнего борделя. Таксист специально обученный, он умеет делать только бар. Воспитанный таксист скажет, что он только возит, а глупый проглотит целиком, а вот как ты потом будешь разбираться, где водка и почему девка вызвана поумолчальная?

Irma ★★
()
Ответ на: комментарий от Irma

Один пытается про чай с кофе мне тут залечивать, другой что-то про водяру и баб пишет. На ЛОРе в компиляторах вообще хоть кто-то что-то понимает? Или тут сплошные извращенцы и алкоголики?

Если кто про бар не понимает, можно заменить на завхоза, который должен купить карандаши и не знает, где покупают табуретки.

А можно заменить на компилятор?

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Это будет сложно, но попробую:

Программист Алиса сообщает компилятору: зделой красиво в архитектуре биг-ендиан. Компилятор писал программист Боб, который биг-ендиан на дух не переносит и обучил компилятор отмахиваться от таких просьб. Алиса плачет, Бобу все равно.

Irma ★★
()
Ответ на: комментарий от Irma

На ЛОРе в компиляторах вообще хоть кто-то что-то понимает?

Отвечу сам себе на этот вопрос: похоже, что нет. Всё плохо. Вместо конкретного примера, как именно лишние ключи могут привести к поломке чего-то, мне тут вещают охерительные истории про Алису, Боба, шлюх и водяру.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от Irma

Или даже так: собери мне программу с поддержкой ключей шифрования по ГОСТу. Компилятор честно пишет варнинг «ключи шифрования не поддерживаются никакие», но собирает, а когда придет время, приходит недобрый заказчик и учит читать варнинги. Вот чтобы никто не приходил, компилятор честно тебя стопает.

Irma ★★
()
Ответ на: комментарий от Irma

До вас кажется начинает что-то доходить, но понимания, что именно делает компилятор все ещё нет. Иначе бы сравнения с ключами шифрования и прочей шизофренией не было бы.

a1ba ★★
()
Ответ на: комментарий от a1ba

Компилятор все ещё не таксист, не девка, не бар, не бухло, не завхоз, не карандаш и даже не табуретка.

Философские беседы о сути компилятора на моём ЛОРе. Жаль квотезы сдохли :(

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)

Задачей компилятора не является делать жизнь лучше. Задачей компилятора является компилировать код. При указании такой штуки, как -Werror, жёстко реагировать на любые подозрительные места в коде или, как тут, в командной строке. Ключевое слово - любые. Решать, влияют ли эти подозрительные места на результат или нет, должен ты, а не компилятор, именно для этого предупреждения и делаются, а не для того, чтобы кому-то жизнь усложнить. А компилятор любезно сообщает, каким образом отключить соответствующее предупреждение, если ты принял решение, что оно ни на что не влияет.

JaM
()