Возможная ошибка при анализе путей gcc11?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Возможная ошибка при анализе путей gcc11?

Сообщение Anonymous »

При использовании gcc11 (11.3.1) я наблюдаю странное поведение: кажется, что -idirafter путь имеет приоритет над -iquote path, если путь одинаков для обоих вариантов.
Учитывайте:

Код: Выделить всё

// test/foo.hpp
#pragma once
auto foo{ char{ 256 } };

Код: Выделить всё

// test/foo.cpp
#include "test/foo.hpp"
Как и следовало ожидать, если мы попытаемся скомпилировать из родительского каталога test/, мы получим

Код: Выделить всё

$ g++ -iquote. -c test/foo.cpp -o foo.o
In file included from test/foo.cpp:1:
./test/foo.hpp:5:21: error: narrowing conversion of '256' from 'int' to 'char' [-Wnarrowing]
5 | auto foo{ char{ 256 } };
|
Однако добавление -idirafter. заставляет все компилироваться:

Код: Выделить всё

$ g++ -iquote. -idirafter. -c test/foo.cpp -o foo.o
, gcc14 и gcc15 не демонстрируют такого поведения. Однако мне не удалось найти никаких упоминаний об ошибке в gcc11. Мне было интересно, видел ли кто-нибудь подобную проблему или есть отчет об ошибке, который я мог пропустить, и есть ли возможный патч? Очевидно, если бы кто-то мог подтвердить или опровергнуть эту проблему, было бы здорово.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... lude-paths
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»