Код успешно компилируется в GCC, но не может компилировать в ClangC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Код успешно компилируется в GCC, но не может компилировать в Clang

Сообщение Anonymous »

Это производный вопрос из задачи при внутренней ошибке компилятора (ICE) встречается с GCC, а компиляция с Clang также дает запутанные сообщения об ошибках < /p>
В предыдущем вопросе команда GCC определила, что причина ошибки внутреннего компилятора (ICE) была неспособности GCC, чтобы правильно согласиться с адресом. Адрес, где адрес объекта происходит из статической переменной и обрабатывается через ReinterPret_CASC. Однако, если обрабатывается только этот основной объект, GCC 15.2 x86-64 успешно компилируется, в то время как Clang 20.1.0 x86-64 не сможет скомпилировать. (Https://godbolt.org/z/hdvfdzjb5):

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

#include 

template
void test2() {}

template
void test1()
{
static std::byte memory[sizeof(T)];
static T& dummy_object = *reinterpret_cast(memory);
test2();
}

int main() {
test1();
}
< /code>
Ниже приведен отчет об компиляции от Clang 20.2.0: < /p>
:11:5: error: no matching function for call to 'test2'
11 |     test2();
|     ^~~~~~~~~~~~~~~~~~~~
:15:5: note: in instantiation of function template specialization 'test1' requested here
15 |     test1();
|     ^
:4:6: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'E'
4 | void test2() {}
|      ^
1 error generated.
Compiler returned: 1
это GCC, это неправильно или забегает?

Подробнее здесь: https://stackoverflow.com/questions/797 ... e-in-clang
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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