Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2017, 12:24   #41
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
я так делаю
Для С - это валидно.
C++ - это неопределенное поведение.
Croessmah вне форума Ответить с цитированием
Старый 21.06.2017, 12:37   #42
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Для С - это валидно.
C++ - это неопределенное поведение.
Use a union. Most compilers support this without complaining about strict aliasing. This is allowed in C99 and explicitly allowed in C11.
Стоп, а что есть С11, а не С++11 ?

...да блин, век живи, век учись

Последний раз редактировалось alexzk; 21.06.2017 в 12:53.
alexzk вне форума Ответить с цитированием
Старый 21.06.2017, 12:53   #43
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Прикинь https://en.wikipedia.org/wiki/C11_(C_standard_revision) языки разные и стандарты разные...
p51x вне форума Ответить с цитированием
Старый 21.06.2017, 12:56   #44
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
5. Видишь warning насчет strict aliasing, разберись, может и UB-нуть.
6. Не видишь warning насчет strict aliasing? А он есть. Как суслик.
бг, точно ... сделал щас -Wstrict-aliasing=2

и сразу суслики полезли...ну епт ...
alexzk вне форума Ответить с цитированием
Старый 21.06.2017, 13:02   #45
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Стоп, а что есть С11, а не С++11 ?
Да уж давно есть. Следом за C++11. Добавлены некоторые плюшки. Даже дженерики появились.
Croessmah вне форума Ответить с цитированием
Старый 21.06.2017, 13:19   #46
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Блин, и что обидно....это часть кода в гугл краш хендлере:

Код:
struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg);
    hdr->cmsg_level = SOL_SOCKET;
    hdr->cmsg_type = SCM_RIGHTS;
    hdr->cmsg_len = CMSG_LEN(sizeof(int));
    int* p = reinterpret_cast<int*>(CMSG_DATA(hdr));
компилер тут сусликов и ловит теперь....как жить?!
alexzk вне форума Ответить с цитированием
Старый 21.06.2017, 13:20   #47
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
как жить?!
Отключить предупреждения для этого кода. )))
Croessmah вне форума Ответить с цитированием
Старый 21.06.2017, 13:27   #48
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Отключить предупреждения для этого кода. )))
...да не хочется....вот нарыл вроде воркэроунд для qmake, сырцы ложим в уникальные переменные, не добавляя к SOURCE, и
Код:
gno.name = nooptimize
gno.input = G_SOURCES
gno.dependency_type = TYPE_C
gno.variable_out = OBJECTS
gno.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_IN_BASE}$${first(QMAKE_EXT_OBJ)}
gno.commands = $${QMAKE_CXX} $(CXXFLAGS) -fno-strict-aliasing -Wno-error=strict-aliasing $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
QMAKE_EXTRA_COMPILERS += gno

Последний раз редактировалось alexzk; 21.06.2017 в 14:36.
alexzk вне форума Ответить с цитированием
Старый 21.06.2017, 13:41   #49
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

У меня в проекте сторонний хедер подключается с несколькоми сотнями предупреждений. Сделал свой хедер
Код:
#отключаем заданные предупреждения
#include "багнутый хедер"
#включаем отключенные предупреждения
Croessmah вне форума Ответить с цитированием
Старый 21.06.2017, 13:47   #50
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
У меня в проекте сторонний хедер подключается с несколькоми сотнями предупреждений. Сделал свой хедер
Код:
#отключаем заданные предупреждения
#include "багнутый хедер"
#включаем отключенные предупреждения
Ну я не хидер вставляю, у меня папка со всем в куче - там CPP файлы, оформил как "подпроект", вот соотв. его нужно с уникальным флагом скомпилить, а не с глобальным.
alexzk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MMX сложить два числа gansm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 13 29.10.2010 05:16
как сложить два числа с плавающей точкой forsy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 29.03.2010 02:15
Макрос: сложить два числа белочка Microsoft Office Excel 6 23.12.2009 22:02
Сложить два числа и вывести результат на экран We1c0m3 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.05.2009 11:41
Сложить два числа iwaniwan Win Api 3 23.04.2009 06:27