Кресты / Говнокод #23836 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
#include <xmmintrin.h>

void crasher() {
    constexpr __m128 w = {1,2,3,4};
    asm ("addps %[w], %[w]" : : [w] ""(w));
}

Крашим GCC
https://ideone.com/iIAN0i

Запостил: Antervis Antervis, (Updated )

Комментарии (58) RSS

  • https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84625 - отрепортил

    Кстати в clang мне тоже есть что зарепортить(накопилось кое-какой хуиты), но они там для регистрации требуют чтоб я куда-то что-то писал и говорил свой full name, так что обойдутся
    https://bugs.llvm.org/
    New user self-registration is disabled due to spam. For an account please email bugs-admin@lists.llvm.org with your e-mail address and full name.
    Ответить
    • > with your e-mail address and full name.

      Забей, напиши на это мыло сразу описание багов.
      Ответить
    • Not a Bug, Wontfix, kokokoko.
      gcc-way, хуле.

      Может стоило выхлоп краша приложить?
      Ответить
      • В принципе я согласен с решением. Не тратить время на какую-то непонятную никому ненужную хуйню. Лучше пойти пофиксить реальные баги.

        P.S. А где там wontfix? Вроде и патч уже есть.
        Ответить
        • Упдате. Я истолковал его первые 2 коммента как простое нежелание это фиксить.
          Ответить
  • Кого ебет ваше "gcc"? Кто на этом "С" еще пишет?
    Ответить
        • Гугл, яндекс, фейсбук, вконтакте, оракл, майкрософт
          Хуйня корочи
          Ответить
        • Если мне надо считать байт по адресу 123, установить ему в единичку флажок в третьем бите и записать его обратно, то зачем мне C++?
          Ответить
          • А вот если тебе понадобится этот флажок убрать по выходу из функции - С++ уже пригодится.
            Ответить
                • ну если сравнивать последние плюсы с сями то наверное в полторы тысячи:)

                  Я вообще с треском перехожу на новые стандарты. Я помню что долго очень не пользовался VLA и декларировал перменные вверху функции, хотя на дворе уже давно был C99
                  Ответить
              • мне кажется, есть специальное слово для таких ситуаций. Как там оно? Неосилятор, вроде
                Ответить
                • Давай, давай, а ну, давай,
                  Меня шмонай ты, вертухай,
                  Да загляни под юбочку,
                  Да посмотри на булочки.
                  Понюхай попку носиком,
                  Прикинься, киса, пёсиком,
                  Вот в этом вся и разница,
                  Кто хочет, а кто дразнится.

                  ©Любимая группа мамки админа
                  Ответить
    • Линукс на сях написан - у плюсовиков когда они видят костыль агрегации вместо наследования и макросные псевдофункции вместо функций на шаблонах, хендловое псевдоООП глаза начинают сочится кровью, а сфинктер срочно начинает требовать охлаждения.
      Ответить
      • > костыль агрегации вместо наследования

        Костыль — это в другую сторону.

        > сфинктер срочно начинает требовать охлаждения

        Если у тебя пригорает, не нужно на всех плюсовиков распространять. Если виртуальные интерфейсы в паре мест в ядре нужны, проще там «ООП» вручную навернуть.
        Ответить
      • Вообще-то агрегация это когда N объектов имеют интерфейс Foo, и ты создаешь объект с интерфейсом Foo который последовательно делегирует вызов всем этим объекам

        Это частный случай делегирования, так что говорить правильнее о делегирование vs наследование.

        Так что делегирование почти всегда лучше наследования, это известно даже в ООП мире. В некоторых ЯПах даже сахар для этого есть.
        Ответить
            • Это не значит что наследование не нужно - просто когда среди полей структуры даже видишь указатели на функции которые надо инициализировать чтоб что-то там сделать с поправкой на сей костыль, то понимаешь что в таком возрасте с онанизмом завязывают и заводят девушек нужна хотя-бы начальная поддержка ООП.
              Ответить
                • Ну в этом случае реализация метода неотделима от объекта к которому она применяется - так что я за ООП.
                  Ответить
                  • Оказывается, есть что-то более раздражающее, чем адепты Rust, которые гордо заявляют, как переписывание на расте решает все проблемы.
                    Это адепты ООП, которые утверждают, что умышленное неиспользование ООП — это фатальный недостаток.
                    Ответить
                    • Умышленное неиспользование ООП? Нет, правильнее сказать, умышленное не использование инструментов поддерживающих ООП, при использовании самой концепции ООП.
                      Ответить
                      • Поддержка ООП науровне языка имеет две проблемы:

                        1) она усложняет код. Понять во что скомпилируется процедурный код куда проще, чем понять что случится в случае вызова виртуального метода с динамическим диспатчем (таблицы методов, то-сё).

                        НЕКОТОРЫЕ считают что чем код проще -- тем лучше.

                        2) Почти все реализации ООП в мейнстримовых языках уёбищны, и это вызывает стойкое отвращение у НЕКОТОРЫХ.

                        А так же: наличие/отсутствие ООП сахара в языке очень слабо влияет на качество кода и качество API. Это очень странно, я сам с начала в это не верил, но теперь отчетливо вижу что 90% кода вокруг меня и 90% API -- полное говно. И не важно: процедурно это говно или с классами, методами и конструкторами.

                        Оставшиеся 10% разделены примерно поровну между процедурным и ООПшным стилем.

                        Продумать хорошую иерархию классов -- сложно, большинство говнокодеров с этим не справляются, и в результате у них получается ебучее месиво, а благодаря ООП к тому же еще и сложное.
                        Лучше бы процедурно написали, ейбогу:)
                        Ответить
                        • Давай, давай, а ну, давай,
                          Меня шмонай ты, вертухай,
                          Да загляни под юбочку,
                          Да посмотри на булочки.
                          Понюхай попку носиком,
                          Прикинься, киса, пёсиком,
                          Вот в этом вся и разница,
                          Кто хочет, а кто дразнится.

                          ©Любимая группа мамки админа
                          Ответить
                        • Давай, давай, а ну, давай,
                          Меня шмонай ты, вертухай,
                          Да загляни под юбочку,
                          Да посмотри на булочки.
                          Понюхай попку носиком,
                          Прикинься, киса, пёсиком,
                          Вот в этом вся и разница,
                          Кто хочет, а кто дразнится.

                          ©Любимая группа мамки админа
                          Ответить
      • > плюсовиков когда они видят костыль агрегации вместо наследования

        Наследование само по себе один здоровенный костыль.
        Вроде 2к18, а еще все от ООП не выздоровели.
        Ответить
        • Если не использовать его как костыль, то очень многое подподает как раз под него..

          объекты, которые обмениваются сообщениями — это мы;)
          Ответить
          • А еще _иногда_ мы чистые функции, хотя бываем и с побочными эффектами.
            Часто мы конечные автоматы, причем недетерминированные, потому что из одного и того же настроения можем перейти в совсем разные.
            Часто у нас НАКАПЛИВАЕТСЯ, так что мы автоматы со стеком (или "с магазином"), и наконец у нас есть достаточно свободно адресумый мозг (хотя и не бесконечный, к сожалению), а значит мы -- машины тюринга.
            Ответить
        • Функциональщекштоле? Что из ваших ваших новых прогрессивных концепций доступно в pure C?
          Ответить
          • >Функциональщекштоле?

            И это было сказано человеку, который здесь ГОДАМИ обсирал хацкелизм.

            >Что из ваших ваших новых прогрессивных концепций доступно в pure C?

            Да всё, если так разобраться. Просто все использовали эти «новые», «прогрессивные» концепции задолго до, даже не зная что насколько они новые и прогрессивные.

            Иммутабельность, итераторы (ленивые списки), указатели на функции — функцию можно передать как аргумент, итд.
            Ответить
              • >Бьёт - значит любит

                Безусловно. Это ж извечный конфликт, постулированный еще Ницше.
                Чтобы что-то толково обсирать — нужно в нём как следует разобраться.
                Ответить
                • В обычном мире просто так обсирают. И только на ГК джентльмены живут по заветам Ницше.
                  Без шуток, часто удивляюсь, насколько хорошо Борманд знает PHP, а Сёма - Линукс. Иные заявляют о своих профессиональных талантах в данных областях с меньшими знаниями.
                  Ответить
                  • «Кто сражается с чудовищами, тому следует остерегаться, чтобы самому при этом не стать чудовищем.»

                    И ведь Тарас угодил в такую ловушку. Сперва он с легкостью стал уделывать плюсовиков в крестосрачах, а потом начал писать игры на С++.

                    >а Сёма - Линукс
                    Какой из джвух?
                    Ответить
                    • > игры на С++.

                      Он сделал это ради андроид маркета

                      Причём в мире андроид он со своим цпп остался в таком же меньшинстве как на десктопе с дельфи
                      Ответить
                    • >>а Сёма - Линукс
                      >Какой из джвух?
                      Всего джва линукса? Оригинальный, немецкий.

                      А тот, который Real, он не линукс, он JS ругает, тоже кстати неплохо разбираясь в теме разработки под веб-питушню.
                      Ответить
                        • У Вас настолько всё по полочкам разложено, что даже зона хейтерства строго очерчена. Похвально.
                          Ответить
                        • Если бы еще асинхронный http клиент был, чтобы совсем от коллбеков отказаться.
                          Ответить
                          • Так завезли-же в Es7

                            на вот, подрочи
                            sync function asyncCall() {
                              console.log('calling');
                              var result = await resolveAfter2Seconds();
                              console.log(result);
                              // expected output: "resolved"
                            }
                            Ответить
            • Да в курсе что хорошо зная язык можно писать в любом стиле, вопрос в том сколько каменных молотков надо смастерить чтоб таки построить космический корабль. Может все таки имеет смысл использовать языки где это все есть уже из "коробки"?
              Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8