Сборный / Говнокод #25053 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
ㅌㄹ ㄱㅌ		; Помещаем в BX текущее значение регистра ES	<───────┐
ㅈㅿ		; Загружаем младший байт регистра флагов в AH		│
		;							│
ㅊㅋ		; В пару ES:DI кладем то, что сейчас находится в AX	│
		;							|
ㄹㅅ		; Дважды увеличиваем значение регистра DI		|
ㄹㅅ		; на одну единицу					|
		;							│
ㅎㅋ ㅿㅈ		; Образуем бесконечный цикл			>───────┘

Господа, ОНО вернулось. Следующая итерация всеми нами любимого и восхваляемого [имя, которое нель̸̗̠̘̘̪̳̩зя произносить]. Я б̞̫͔̜ы на вашем ме̤̣̺͇̫с̨͈те покинул стр̵а̻̘̪̙͎̳̕н̬̙̤̙̪̝̺͠ицу. С̫е̜й̱͎ч̦̦̝͔а̙͓͓с̛̩̞̘ ̫̹͙̲̤̖͉ж̶͉̻е҉̼̦.

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

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

  • Попробуем перевести с хангыли:
    ТХР КТХ
    ЧЗ
    
    ЧХКХ
    
    РС
    РС
    
    ХКХ ЗЧ
    Понятнее не стало. Одни согласные и даже одна устаревшая буква (ㅿ).
    Ответить
  • Надо китайские иероглифы, там можно base256 и выше без проблем замутить.
    Ответить
    • Слушай, ведь это же UB, да?

      const char* buz = (std::string("foo") + std::string("bar")).c_str();
      std::cout << buz;

      Почему компилятор не ругается?
      Ответить
      • > это же UB, да?

        да.

        > Почему компилятор не ругается?

        Потому что проблема останова не разрешима. А вдруг c_str() иногда возвращает nullptr или статическую пустую строку, тогда никакого UB не будет.
        Ответить
        • А то компилятор не знает что возвращает c_str из std::string?
          Впрочем, может быть статические анализаторы типа PVS и знают.

          Самое ужасное что это работает в VC++!
          UB который работает и не дает варнингов! За это ли мы любим С++?
          Ответить
            • да, в дебаге
              vs 2015
              судя по ideone и gcc тоже съел
              надо шланг проверить

              зы: Лол!
              в релизе не работает!
              Ответить
                • да.

                  Теперь я думаю чому operator new возвращает указатель на void* а не на класс.
                  Ответить
          • > UB который работает и не дает варнингов! За это ли мы любим С++?


            У тебя неправильный посыл.

            Вся суть сишки и плюсцов в том, что компилятор имеет полное право считать, что НИКАКОГО UB В ПРОГРАММЕ НЕТ. Программист — царь, он сделал всё правильно, и исходя из этого компилятор может делать кучу оптимизаций. Поэтому когда компилятор видит твою строчку, он думает не "опа, УБ!", а "опа, господин позаботился о том, что в этом выражении нет УБ, как мне это оптимизнуть?".
            Ответить
            • Прочитав это, после допиздывающейся до каждой буквы "Явы" даже я стал за "C++". Но минус мокрышу въебал.
              Ответить
        • > А вдруг c_str() иногда возвращает nullptr или статическую пустую строку
          Ладно, статическая строка (даже непустая) - это понятно.
          А вот nullptr - это реальность c_str или обобщение случая до произвольной функции?
          Ответить
            • Вроде бы указатель на питушню, в которой лежит один нулевой символ, т.к. по умолчанию пустая строка "".
              Или у std::string в области значений есть не только "", но и NULL?
              Ответить
              • думаю ты прав, но надо проверить или почитать
                а что тогда вернет string("")?тож самое?
                Ответить
                • > а что тогда вернет string("")?тож самое?
                  Должен вернуть то же самое. По крайней мере, явно инициализируется пустой строкой, а не нулевым указателем.
                  Ответить
                    • > Ты тоже файка Инкануса? Признавайсиа

                      Да. Не заметил, что они долгое время не появлялись, а тут в один вечер проснулись?
                      Ответить
                        • На секунду задумался, а не файка ли ты, и посмотрел твой айдишник.
                          Ответить
                          • Я на днях почитал свежие посты и охренел от того, что "Инканус" слил пароль. Только потом сравнил ID.
                            Кстати, не сразу заметил, что там "_", поначалу думал, что "e" в "gray".
                            Ответить
                        • Всё сходится. Вы все файки борманда. Остальсь только подтверждения Пи увидеть.
                          Ответить
                    • А как я докажу, что да или что нет?
                      В это можно только уверовать. А те, кто верит, что я не чья-то файка, об этом не спрашивают, им и доказательств не нужно.
                      Ответить
              • > указатель на питушню

                На курятник?
                Ответить
      • Да, UB. Ты держишь указатель на кишки дохлого временного объекта.

        > Почему компилятор не ругается
        Он не знает что вернул c_str(). Может быть там копия strdup'нутая и всё ок...
        Ответить
        • Я понимаю: временный объект живет до конца вычисления выражения

          >>Он не знает что вернул c_str()
          🙁
          Ответить
        • > Он не знает что вернул c_str(). Может быть там копия strdup'нутая и всё ок...
          А почему так?
          c_str специально реализован так, чтобы у std::string с небольшой вероятностью вызывался strdup и текла память?
          Или оптимизатор после всех преобразований уже код c_str очень слабо видит и не помнит, что там за функция была?
          Ответить
          • Ну откуда он знает, какая там семантика? Это весь класс надо изучать, чтобы разобраться что и когда он там аллоцирует и удаляет... Да и реализация может быть в другом модуле.
            Ответить
            • Я думал, компилятор стандартную библиотеку лучше знает. По крайней мере, на хабре в статьях про анализатор с единорогом что-то про стандартную библиотеку сишки писали.
              Ну а строка - это же шаблонная питушня -- более открытая, чем другое.

              В общем, печально, что не знает.
              Ответить
              • Забавно, что при этом компиляторы умеют кидать ворнинг, если printf вызывается с константой в качестве формата, но при этом закорючки в формате не соответствуют типам остальных параметров. Т. е. printf компилятор знает, а чему-то более сложному его не научили.
                Ответить
                • Видимо проблемы с printf успели всех заебать за столько лет... В gcc для printf-like функций даже аннотацию запилили.
                  Ответить
                  • The format attribute specifies that a function takes printf, scanf, strftime or strfmon style arguments that should be type-checked against a format string.

                    Видимо, не только printf успел всех заебать...
                    Ответить
                    • Блин, там ещё и strfmon есть. Кто-то на сишке ебашит опердень?
                      Ответить
                      • Я почему-то думал, что форматирование валют обычно велосипедят или используют монстроподобные библиотеки вроде ICU. В стандартной библиотеке даже апкейсу нельзя доверять (он может не сработать для некоторых языков).
                        Ответить
                        • > форматирование валют обычно
                          > даже апкейсу нельзя доверять

                          После слова ДАЖЕ идёт более сложная задача. В случае с валютами ведь нет проблем с кодировками, хуё-моё. Расставил пробелы и точку или запятую и всё. Апкейст-то похардовее будет.
                          Ответить
      • А можно перевести на какой-нибудь язык, кроме крестов?
        Ответить
        • Довольно сложно:)
          В большинстве языков (java, ruby, python, за редким исключением и в C#) все объекты живут в куче, а программист работает с ними через указатель, и объекты удаляются под воздействием GC.

          В С++ же это не так, и это порождает массу лулзов, непонятных программистам на других языках.

          В частности в упомянутых ваше ЯПах в результате выражения "foo" + "bar" на куче появится String и будет жить пока он кому-нить нужен.
          В С++ же он сразу же удалится.
          Ответить
      • Какое это имеет отношение к теме?
        Ответить

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

Помни, guest, за тобой могут следить!

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


    8