The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз набора компиляторов LLVM 22

02.03.2026 12:15 (MSK)

После шести месяцев разработки представлен релиз проекта LLVM 22.1.0, развивающего инструментарий (компиляторы, оптимизаторы и генераторы кода), компилирующий программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован в машинный код для заданной целевой платформы или использован JIT-компилятором для формирования машинных инструкций непосредственно во время выполнения программы. На базе технологий LLVM проектом развивается компилятор Clang, поддерживающий языки программирования C, C++ и Objective-C. Начиная с ветки 18.x проект перешёл на новую схему формирования номеров версий, в соответствии с которой нулевой выпуск ("N.0") используется в процессе разработки, а первая стабильная версия снабжается номером "N.1".

Среди улучшений в Clang 22:

  • Добавлена поддержка токенов выделения памяти (Allocation Token) для маркировки уникальным идентификатором операций выделения памяти, осуществляемых при помощи таких функций, как malloc. Идентификаторы дают возможность структурировать информацию в куче (heap), упростить выявление утечек в памяти и реализовать группировку объектов на основе назначения или характера изменений (например, разделять "горячие" или "холодные" данные). Для включения следует использовать флаг "-fsanitize=alloc-token".
  • Возможности, связанные с языком С:
    • Реализован черновик спецификации, определяющей механизм отложенного выполнения "defer", дающий возможность выполнить действия в момент выхода из текущей области видимости. Для включения поддержи "defer" добавлен флаг "-fdefer-ts".
    • Добавлена встроенная функция __builtin_stack_address(), повторяющая аналогичную функцию в GCC. Функция возвращает адрес в стеке, разделяющий область стека текущей функции, вызвавшей __builtin_stack_address(), и в последующем вызываемыми функциями.
  • Возможности, развиваемые для будущего стандарта C2y:
    • Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам и оператору switch, которые можно указывать в операторах break и continue для явного определения цикла, из которого производится выход.
      
         outer:
         for (int i = 0; i < IK; ++ i) {
           for (int j = 0; j < JK; ++ j) {
              continue;       // переход к CONT1
              continue outer; // переход к CONT2
              // CONT1
           }
           // CONT2
         }
      
    • Расширена и включена в стандарт реализация встроенного макроса "__COUNTER__", предназначенного для генерации уникальных имён идентификаторов. Выставлен лимит в 2147483647 вызовов данного макроса, после превышения которого будет выведена ошибка.
    • Убран вывод предупреждения (-Wstatic-in-inline) при использовании статических функций или переменных внутри функций, объявленных как "extern inline".
  • Возможности, определённые в Си-стандарте C23:
    • В заголовочный файл float.h добавлена поддержка макросов FLT_SNAN, DBL_SNAN и LDBL_SNAN, реализующих сигнальные (вызывающие исключение при использовании в арифметических операциях) значения NaN для типов float, double и long double.
    • Исправлена ошибка, из-за которой разные неименованные типы обрабатывались как совместимые в пределах одной единицы трансляции, если у них совпадали поля.
    • Флаг "-MG", используемый для игнорирования отсутствия заголовочных файлов при сканировании зависимостей, распространён на директивы "#embed" и теперь подавляет вывод ошибки "file not found" при отсутствии файла, указанного в директиве "#embed".
  • Возможности, связанные с С++:
    • Добавлена развиваемая в спецификации C++2с (C++26) возможность использования структурированных привязок (structured binding) в контексте "constexpr", т.е. ссылки на константные выражения теперь сами могут быть константными выражениями. Поддержка реализована для массивов и простых структур (кортежи пока не поддерживаются).
      
         constexpr int arr[] = {1, 2};
         constexpr auto [x, y] = arr; 
      
    • В соответствии с требованием стандарта C++20 обеспечено преобразование ограничений (constraints) в стандартную форму перед проверкой их выполнения, что позволяет выдавать более точные диагностические сообщения и правильно обрабатывать ошибки подстановки в аргументах шаблона, используемых только в concept-ids.
    • Добавлено семейство встроенных функций "__builtin_[lt|gt|le|ge]_synthesizes_from_spaceship", позволяющих узнать, были ли операторы сравнения "<", ">", "<=" и ">=" синтезированы из оператора "<=>".
    • Параметр "-Wincompatible-pointer-types" переведён на вывод ошибки вместо предупреждения. Для возвращения старого поведения следует использовать опцию "-Wno-error=incompatible-pointer-types".
  • Добавлены встроенные функции __builtin_bswapg, __builtin_elementwise_ldexp, __builtin_elementwise_fshl, __builtin_elementwise_fshr, __builtin_elementwise_minnumnum, __builtin_elementwise_maxnumnum, __builtin_masked_load, __builtin_masked_expand_load, __builtin_masked_store, __builtin_masked_compress_store, __builtin_masked_gather, __builtin_masked_scatter и __builtin_dedup_pack. Например, builtin_dedup_pack позволяет удалить дубликаты из списка типов:
    
       using MyTypeList = TypeList<__builtin_dedup_pack<int, double, int, char, double>...>;
       // результирующий тип будет TypeList<int, double, char>
    
  • При отладке неопределённого поведения через UBSan (-fsanitize=undefined -fsanitize-trap=undefined) обеспечено добавление в генерируемую отладочную информацию сведений о причинах ошибок. Для задания уровня детализации информации об ошибках добавлен флаг "-fsanitize-debug-trap-reasons", который может принимать значение "basic" для общих описаний (например, "Integer addition overflowed") и "detailed" для включения развёрнутой информации (например, "signed integer addition overflow in 'a + b'").
  • Добавлены новые флаги компилятора:
    • "-f[no-]sanitize-debug-trap-reasons" для управления встраиванием причин возникновения исключений (trap) в отладочную информацию при компиляции в режиме "-fsanitize-trap".
    • "-fsanitize=alloc-token", "-falloc-token-max", "-fsanitize-alloc-token-fast-abi" и "-fsanitize-alloc-token-extended" для управления токенами выделения памяти.
    • "-fmatrix-memory-layout" для управления размещением в памяти матричных типов (например, column-major - по столбцам, row-major - по строкам).
  • Для функций реализован атрибут "malloc_span", похожий на атрибут malloc, но применяемый к функциям, возвращающим span-подобные структуры, содержащие указатель и поле с размером или указателем на конец блока.
  • Добавлен атрибут "modular_format" для динамического выбора необходимой статически связываемой реализации функции printf во время компоновки.
  • Расширены средства диагностики и статического анализа, добавлены новые проверки (несколько десятков улучшений, связанных с диагностикой).
  • В бэкенд для архитектуры X86 добавлены дополнительные встроенные функции (Intrinsics) для расширений SSE, AVX и AVX512. Добавлены режимы сборки для CPU Intel на базе микроархитектур Wildcat Lake (-march=wildcatlake) и Nova Lake (-march=novalake).
  • В бэкенд для архитектуры AArch64 добавлена поддержка процессоров Ampere Computing Ampere1C (ampere1c), Arm C1-Nano (c1-nano), Arm C1-Pro (c1-pro), Arm C1-Premium (c1-premium) и Arm C1-Ultra (c1-ultra). Добавлены дополнительные встроенные функции для инструкций FCVTZ[US], FCVTN[US], FCVTM[US], FCVTP[US], FCVTA[US]. Стабилизирована поддержка FMV (Function Multi-Versioning). Пользователям предоставлена возможность переопределения приоритета различных версий функций.
  • Добавлена поддержка архитектуры LoongArch32 (LA32R, LA32S).
  • Улучшены бэкенды для архитектур ARM, AMDGPU, RISC-V, LoongArch64, MIPS, WebAssembly и PowerPC.


  1. Главная ссылка к новости (https://discourse.llvm.org/t/l...)
  2. OpenNews: LLVM ввёл правила применения AI-инструментов. Curl и Node.js ограничат выплаты за уязвимости из-за AI
  3. OpenNews: Релиз набора компиляторов LLVM 21
  4. OpenNews: В Clang намерены добавить режим усиленной безопасности
  5. OpenNews: На базе Clang для языка Си реализован режим проверки границ буферов
  6. OpenNews: Релиз набора компиляторов GCC 15
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64898-llvm
Ключевые слова: llvm, clang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (138) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Карлос Сношайтилис (ok), 12:27, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Возможности, связанные с языком С: Реализован черновик спецификации, определяющей механизм отложенного выполнения "defer"

    Если вы не идёте к RAII, RAII идёт к вам

     
     
  • 2.34, Аноним (34), 14:42, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Давно пора. Только вот зачем они сделали эту фичу как control block, а не как декларацию с полноценными лямбда-функциями, мне не понятно. Так придётся колхозить замыкания, если надо захватывать значения переменных на этапе defer, что часто бывает нужно. И теперь даже если потом добавят лямбды, с текущим defer они не совместимы. В общем, подложили лишние грабли и себе, и C++.
     
     
  • 3.48, Сладкая булочка (?), 15:36, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Давно пора.

    Давно уже есть в gcc и используется (например, в коде systemd). Надо просто стандартизовать.

     
     
  • 4.61, Аноним (34), 16:20, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот они и стандартизировали. Только не то.
     
  • 3.99, Аноним (99), 19:15, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Давно пора.

    Давно пора научиться посылать лесом неосиляторов, когда те начинают скулить "запилите мне фичу, к которой я привык в другом языке, я без неё кодить не умею, плак-плак".

     
     
  • 4.106, Аноним (34), 19:29, 02/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.138, sage (??), 22:15, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это буквально как в Go.
     
  • 2.47, Сладкая булочка (?), 15:35, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если вы не идёте к RAII, RAII идёт к вам

    Только defer - это не RAII.

     
     
  • 3.55, Аноним (34), 16:05, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сделано главным образом именно для RAII.
     
     
  • 4.79, Аноним (79), 18:09, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сделано чтобы нейросети писать сразу на LLVM.
     
     
  • 5.116, Бертолетова соль (?), 20:08, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот бы сразу на Астме
     
  • 3.58, Аноним (58), 16:11, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Только defer - это не RAII.

    Конечно.
    Только defer - это недо RAII.

    Но в копролитный язык из прошлого века не могут добавить сразу нормально.
    Пользователи не поймут. В прямом смысле.
    У них мозг атрофировался еще во времена С89.

    А тут такие изменения!
    Они еще только-только пережили добавление keywordʼа bool.

    А тут в С26 на горизонте маячит is_within_lifetime.
    Прикинь! Лайфтаймы в СИшке!
    Половина дидов просто сопьется от такого напряжения межушного ганглия.

     
     
  • 4.64, Аноним (64), 16:38, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А тут в С26 на горизонте маячит is_within_lifetime
    > Прикинь! Лайфтаймы в СИшке!

    Это у тебя что-то с межушным ганглием. is_within_lifetime - это про C++.

     
     
  • 5.65, Аноним (65), 16:49, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > is_within_lifetime - это про C++.

    Ты все испортил! (с)

    Я тут СИшников пугаю, а ты всё портишь!!
    defer тоже было "про С++", а тут вот как оберрнулось.
    Они запросто поверят и в лайфтаймы.


     
  • 4.71, Аноним (71), 17:36, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Половина дидов просто сопьется от такого напряжения межушного ганглия.

    Я весь такой красивый, молодой и модный. Пишу на Си. Дедов никогда не видел. Может они где-то есть в Интернете?

     
     
  • 5.76, Аноним (76), 18:05, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Локальный мем как и hdr.
     
  • 4.92, Анончик давай выпьем чаю. Анончик выручай. (?), 18:56, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Половина дидов просто сопьется от такого напряжения межушного ганглия.

    Я весь такой красивый, молодой и модный. Пишу на Си. Дедов никогда не видел. Может они где-то есть в Интернете?

     
  • 4.101, Сладкая булочка (?), 19:18, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Только defer - это не RAII.
    > Конечно.
    > Только defer - это недо RAII.
    > Но в копролитный язык из прошлого века не могут добавить сразу нормально.
    > Пользователи не поймут. В прямом смысле.
    > У них мозг атрофировался еще во времена С89.

    В gcc уже давно есть и используется в проектах.

     
  • 4.102, Сладкая булочка (?), 19:20, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Только defer - это не RAII.
    > А тут в С26 на горизонте маячит is_within_lifetime.

    Путать С26 c C++26 - это талант.

     

  • 1.5, Аноним (5), 12:35, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Какой ещё ARM? Только ASML, только x64!
     
     
  • 2.11, Аноним (11), 13:15, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чего ?
    ARM это архитектура, а ASML делают литографы, которые потом покупает например TSMC и производит процессоры для Qualcomm или Apple.
    p.s.:
    - https://cdn.videocardz.com/1/2026/02/QUALCOMM-SNAPDRAGON-X2-ELITE-TEST-5.jpg
    - https://cdn.videocardz.com/1/2026/02/QUALCOMM-SNAPDRAGON-X2-ELITE-TEST-1.jpg
     
     
  • 3.90, Аноним (99), 18:53, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А, точно. Вот так правильно:
    Какой ещё ARM? Только TSMC, только x64!
     

  • 1.6, Аноним (6), 12:46, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как ставить-то?
     
     
  • 2.9, dannyD (?), 13:12, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В генту уже доступен.
     
     
  • 3.29, злой_ой (?), 14:22, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    как всегда машина времени:

    $ cat /usr/ports/devel/llvm22/Makefile | grep ^DISTVERSION
    DISTVERSION= 22.1.0
    $ ls -la /usr/ports/devel/llvm22/Makefile
    -rw-r--r--  1 root wheel 25902 26 Feb 21:47 /usr/ports/devel/llvm22/Makefile
    $ ls -la /usr/ports/devel/llvm22/distinfo
    -rw-r--r--  1 root wheel 180 26 Feb 21:47 /usr/ports/devel/llvm22/distinfo

     
     
  • 4.40, Аноним (40), 15:02, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    google + uuoc
     
  • 4.42, Аноним (42), 15:08, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты портопомойку сравниваешь с main tree. Не надо так.
     
  • 2.24, Аноним (42), 14:08, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не спеши, может, компиляцию хрома опять сломали. Раст, опять же, к осени ждать только.
     

  • 1.7, Аноним (7), 12:57, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    >поддержка именованных циклов

    у раста подсмотрели)
    https://doc.rust-lang.org/std/keyword.break.html

     
     
  • 2.10, Аноним (10), 13:13, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Технологии языков прошлого века, когда родителей раста ещё не было в планах.
     
     
  • 3.15, нах.. (?), 13:43, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Но подсмотрели то у Раста)
     
     
  • 4.27, Аноним (34), 14:20, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле, эти идеи далеко не новы и обсуждались задолго до Раста. И у конкретно этого решения с метками есть свои минусы и противники, как и у альтернатив. Поэтому долго не стандартизировали. Видимо, просто плюнули и решили, что что-то - лучше, чем ничего.
     
  • 4.30, злой_ой (?), 14:27, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    подсмотрели метки? у раста?

    man perlsyn
    /LABEL

    уже и не вспомнить, с каких пор там оно.

     
     
  • 5.140, windowlicker (?), 23:02, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Какая разница? Подсмотрели то у Раста)
     
  • 4.38, Vindex (?), 15:00, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Эта фишка была в D ещё задолго до появления Rust
     
     
  • 5.141, windowlicker (?), 23:03, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Но тем не менее подсмотрели не у D, а у Раста)
     
  • 3.59, Карлос Сношайтилис (ok), 16:16, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так и не раст это придумал, а взял из "языков прошлого века".
    А вот влили, потому что раст популИзировал
     
  • 2.73, Аноним (73), 17:45, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >у раста подсмотрели)

    Не знаю, по крайней мере в чистой сишке этой гадости нет. А вот компилятор Раста делается на основе LLVM. Нет LLVM - нет rustc.

     
     
  • 3.139, анон (?), 22:48, 02/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.8, Аноним (-), 12:58, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам и оператору switch, которые можно указывать в операторах break и continue для явного определения цикла, из которого производится выход.

    Что только не придумают, лишь бы goto не использовать.

     
     
  • 2.77, нах. (?), 18:07, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    причем придумка - всем хуже просто использования goto. (например семантика break LABEL получается совершенно контринтуитивной и еще ищи там в дветыщипятой строке закрывающую скобочку)
    покусанные дейкстрой по прежнему героически борются с устройством компьютера, пожелаем им сдохнуть в муках.
     
     
  • 3.157, Аноним (64), 01:54, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > покусанные дейкстрой по прежнему героически борются с устройством компьютера

    Блин, лучше и не скажешь, все так.

     

  • 1.12, Сусанин (?), 13:28, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам...

    Наконец-то сподобились перетащить это из Perl, в котором это уже десятки лет есть ровно с таким же синтаксисом.

     
     
  • 2.16, windowlicker (?), 13:44, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Из Раста же
     
     
  • 3.18, Аноним (18), 13:59, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Из чего? Это которые в разноцветных шапочках и из ямайки? Они тут причем?
     
  • 3.22, Аноним (22), 14:06, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Из Фортрана же
     
  • 2.21, Аноним (21), 14:02, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    GOTO ещё не перетащили?
     
     
  • 3.25, Аноним (-), 14:10, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > GOTO ещё не перетащили?

    Пф. зачем перетаскивать технологию устаревщую на десятилетия?
    Это же пример убогого овнокода дидов.


     
     
  • 4.39, Аноним (34), 15:00, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Эта "устаревшая" технология с успехом решает все задачи на неё возложенные. И кстати, в конкретно этом случае с именованными циклами, польза последних по сравнению с имеющимся goto довольно сомнительна. Наверно, сделали для альтернативно одаренных с фобией goto.
     
     
  • 5.125, Аноним (125), 20:32, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Эта "устаревшая" технология с успехом решает все задачи на неё возложенные

    Ага, задачи вроде "как превратить 10 строк кода в лапшу за неимением нормальных средств в языке для решения задачи".

     
     
  • 6.156, Аноним (64), 01:40, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как бы тебе объяснить то чтоб ты уже наконец понял. Сишка это системный язык программирования для написания драйверов, ядер ОС, прошивок для МК и тд. Не нужны там эти ваши километры DWARF-лапши в бинарях. Да - простой goto, который транслируется в какой-нить JMP в x86 - это круто и достаточно. Целое ядро на миллионы строк кода так написано.
     
  • 3.128, Аноним (128), 21:06, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://graydon2.dreamwidth.org/218040.html

    >things rust shipped without:
    >* goto (not even as a reserved word)

     

  • 1.14, Аноним (14), 13:40, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Заголовок "Релиз набора компиляторов LLVM 22"
    Портянка "Среди улучшений в Clang 22"

    Так а в LLVM что-то изменили?

     
     
  • 2.17, Аноним (17), 13:45, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, clang - часть llvm, поэтому то что изменили в clang то изменили в llvm. Во-вторых, читай новость целиком.
     

  • 1.20, Аноним (20), 14:00, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    привет, goto, давно не виделись
     
  • 1.23, Аноним (64), 14:08, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это ж любимая С++ная программа всех любителей раста.
     
     
  • 2.49, Сладкая булочка (?), 15:39, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Среднестатистический пользователь раста туда вряд ли заглядывает.
     

  • 1.26, Аноним (26), 14:10, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > операторы сравнения "<", ">", "<=" и ">=" синтезированы из оператора "<=>"

    а это вообще что? как? куда? а главное — зачем?

     
     
  • 2.31, Аноним (34), 14:31, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это позволяет определить, сгенерирован ли оператор компилятором на основе operator<=> (фича C++20) или определён пользователем.

    https://godbolt.org/z/YcG1jTv8Y

    "Зачем" - не знаю, но видимо есть какие-то случаи, когда это может пригодиться.

     
  • 2.107, Сладкая булочка (?), 19:32, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> операторы сравнения "<", ">", "<=" и ">=" синтезированы из оператора "<=>"
    > а это вообще что? как? куда? а главное — зачем?

    Очевидно, что "<=>" - изображение летающий тарелки. Вот прилетят они и увидят, что ты их уважаешь.

     

  • 1.33, Аноним (33), 14:38, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    обязательно было вот это Г делать явным?

    outer:
       for (int i = 0; i < IK; ++ i) {
         for (int j = 0; j < JK; ++ j) {
            continue;       // переход к CONT1
            continue outer; // переход к CONT2
            // CONT1
         }
         // CONT2
       }

    В пхп давно оно неявное, достаточно указать номер уровня вложенности continue 2;

     
     
  • 2.35, Аноним (34), 14:46, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну да, а потом иди считай, куда твой break или continue на самом деле переходит. Заняться нечем?

    С метками тоже переходит не туда, где метка (и это косяк этого решения), но по крайней мере визуально видно о каком цикле речь. К тому же, метку можно назвать как угодно.

     
     
  • 3.41, Аноним (33), 15:06, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    заняться не чем именно тем, кто мешает понятие меток с уровнем вложенности блочн... большой текст свёрнут, показать
     
     
  • 4.60, Аноним (34), 16:18, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да кому вообще он нужен, этот уровень вложенности Важен не уровень вложенности ... большой текст свёрнут, показать
     
     
  • 5.67, Аноним (33), 17:31, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    как кому, смысл вашего break и continue изменился, теперь он не оператор выхода ... большой текст свёрнут, показать
     
     
  • 6.82, Аноним (34), 18:24, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В том-то и дело, что break continue с меткой должен быть почти goto, с тем огр... большой текст свёрнут, показать
     
     
  • 7.84, Аноним (33), 18:39, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сделаю акцент на этом, и ограничусь Давайте опишем процесс написания кода с явн... большой текст свёрнут, показать
     
     
  • 8.93, Аноним (34), 18:56, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не равносильно Потому что break M где M - это метка так и останется b... текст свёрнут, показать
     
     
  • 9.96, Аноним (33), 19:09, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я описал процесс изначального написания кода, и сделал акцент на подсчитывать у... большой текст свёрнут, показать
     
     
  • 10.105, Аноним (34), 19:25, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не буду я ничего искать Если я пишу код, я помню метки и сразу напишу break ou... большой текст свёрнут, показать
     
     
  • 11.112, Аноним (33), 19:55, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    считать ничего не нужно, достаточно посмотреть на комментарий предыдущего цикла ... большой текст свёрнут, показать
     
     
  • 12.124, Аноним (34), 20:31, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Накой ляд я буду делать такую метку Это разве что вы, с вашей привязанностью к ... большой текст свёрнут, показать
     
     
  • 13.129, Аноним (33), 21:12, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда пример в студию хотя бы 10-ти вложенных меток для циклов, хочу посмотре... большой текст свёрнут, показать
     
  • 9.103, Аноним (33), 19:21, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    и чем добавление комментария к for Цикл уровня 1 отличается от вашей метки... текст свёрнут, показать
     
     
  • 10.108, Аноним (34), 19:33, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы серьёзно или троллите меня сейчас Отличается тем, что фиксирована и проверяе... текст свёрнут, показать
     
     
  • 11.115, Аноним (33), 20:07, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а промах мимо уровня вложенности компилятором не фиксируется Я не буду разве по... большой текст свёрнут, показать
     
  • 11.123, Аноним (33), 20:29, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если по сути, то вас всех троллят - формалисты ЯП - формальная система Доб... текст свёрнут, показать
     
  • 8.94, Аноним (33), 19:00, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а теперь просто к этой конструкции именованных циклов добавьте внешний цикл с ме... текст свёрнут, показать
     
  • 5.72, Аноним (33), 17:37, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    я у же не говорю про то, что возьмет один дурак и изменит имя метки :) удачи искать что не так. А в случае с уровнем вложенности - это по факту инвариант (неизменяемое), он изменится только когда добавят новый уровень вложенности.
     
     
  • 6.75, Аноним (-), 18:02, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > он изменится только когда добавят новый уровень вложенности

    И вот _тогда-то_ утдачи искать, что не так.

     
     
  • 7.91, Аноним (33), 18:53, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > И вот _тогда-то_ утдачи искать, что не так.

    меняется уровень - меняется логика, а чту тут такого может быть не так? Выше примеры есть.

     
  • 6.83, Аноним (34), 18:28, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > я у же не говорю про то, что возьмет один дурак и изменит имя метки :) удачи искать что не так.

    Вообще не проблема, т.к. при первой же сборке компилятор подсветит несуществующую метку в goto.

     
     
  • 7.88, Аноним (33), 18:51, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще не проблема, т.к. при первой же сборке компилятор подсветит несуществующую метку в goto.

    ну да, только пойми теперь без разбора всей логики к какому циклу эта метка относилась.

     
     
  • 8.95, Аноним (34), 19:06, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Блин, чувак, ты только что накуролесил в коде - ты можешь посмотреть git diff Д... текст свёрнут, показать
     
     
  • 9.98, Аноним (33), 19:14, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    я вижу как куролесят современные XZ Речь о том, что, если не меняется логика вы... текст свёрнут, показать
     
  • 9.100, Аноним (33), 19:16, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а если речь заходит про всякие гиты шЫты и прочие утилиты, отлично, контролем ур... текст свёрнут, показать
     
  • 3.113, 12yoexpert (ok), 20:01, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >  Ну да, а потом иди считай, куда твой break или continue на самом деле переходит. Заняться нечем?

    а нехер писать спагетти с 50 уровнями вложенности

     
     
  • 4.126, Аноним (34), 20:40, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну т.е. давайте сделаем фичу, чтобы ей не пользоваться. Л-логика 80 lvl.
     
     
  • 5.132, 12yoexpert (ok), 21:40, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    согласен. есть ведь goto - бери и пользуйся. нет, нужно создавать видимость бурной деятельности и выдумывать костыльные конструкции  
     
  • 2.36, Аноним (36), 14:49, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Явное лучше неявного. Полностью одобряю подход авторов.
     
     
  • 3.43, Аноним (33), 15:10, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Явное лучше неявного.

    Согласен, а зачем тогда избыточность в виде оператора цикла, кода есть механизм меток и оператор безусловного перехода. Явное лучше, но почему-то "компилятор умнее". Умному компилятору явно указывать уровень вложенности нет необходимости. Сделали для людей это? Не смешите мои тапочки - Си сделан для людей :))))

     
  • 2.50, Сладкая булочка (?), 15:40, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В пхп давно оно неявное, достаточно указать номер уровня вложенности continue 2;

    Сейчас бы ориентироваться на пых.

     
     
  • 3.56, Аноним (33), 16:08, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Сейчас бы ориентироваться на пых.

    Спустя 56 лет править синтаксис, конечно же, чем еще можно удивить поколение смузихлебов и шайбакодеров.

     
  • 2.63, Аноним (79), 16:29, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Единственно верный путь.
     

     ....большая нить свёрнута, показать (33)

  • 1.37, Аноним (37), 14:58, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    50+ лет фанаты сишечки рассказывать что "ненужОн ваш RAII!" и без defer обойдемся!
    А тут хоба - в драфт стандарта принял))
     
     
  • 2.44, Аноним (42), 15:10, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну это не RAII всё же. Его запретили везде не просто так.
     
     
  • 3.45, 12yoexpert (ok), 15:22, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    о, у вас уже и RAII запретили
     
  • 2.46, 12yoexpert (ok), 15:24, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    RAII это corruption, как раст, превращает straightforward обработку ошибок в какой-то бесполезный ад из костылей
    но гуманитариям после курсов или совкового универа этого не понять, их удел - макдональдс или аутсорс
     
     
  • 3.57, Аноним (33), 16:10, 02/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.66, Аноним (66), 17:15, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > RAII это corruption

    RAII это основа одного из самых распространенных и успешных ЯП - с++.
    Оно помогает перестать ковыряться в дидовой гоутушной лапше, а нормально обрабатывать ошибки. Но я не удивлен, что ты это не осилил.

     
     
  • 4.68, Аноним (64), 17:31, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    перестать ковыряться в дидовой гоутушной лапше, которая хотя бы функцией ограничена и начать ковыряться в еще более адовой лапше setjmp/longjmp.
     
     
  • 5.119, Аноним (125), 20:14, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > начать ковыряться в еще более адовой лапше setjmp/longjmp

    Лол. А где мне увидеть комбо компилятора/платформы, где исключения под капотом реально используют setjmp/longjmp, а не zero-cost DWARF и виндовый SEH?

     
     
  • 6.127, Аноним (64), 20:40, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > zero-cost DWARF

    Да пофиг, goto тоже zero-cost или как это у вас там называется в плюсах. Вместо дидовой гоутушной лапши, ограниченной одной функцией, теперь ковыряемся в DWARF-лапше размазанной по всем файлам.

     
     
  • 7.130, Аноним (125), 21:33, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да пофиг, goto тоже zero-cost или как это у вас там называется в плюсах

    Оно ни капли не zero-const в плане читаемости и поддержки. В этом как бы весь смысл.

    > теперь ковыряемся в DWARF-лапше размазанной по всем файлам.

    О каких ковыряниях в DWARF-лапше ты говоришь? Есть стандартный trow/try/catch, который ведет себя предсказуемо и существует в куче языков помимо C++.

     
     
  • 8.134, Аноним (64), 21:58, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дак и goto стандартный - есть в любом процессоре и ведёт себя предсказуемо ... текст свёрнут, показать
     
     
  • 9.144, Аноним (125), 23:44, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем ты съехал в процессор, если речь идет о языках Да сигнуть черт знает куд... текст свёрнут, показать
     
     
  • 10.154, Аноним (64), 01:31, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А ты зачем съехал на читабельность в контексте zero-cost, если это про накладные... текст свёрнут, показать
     
  • 10.155, Аноним (64), 01:34, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Всмысле черт знает куда Куда указал туда и прыгнул - это даже в ассемблерном вы... текст свёрнут, показать
     
  • 7.131, Аноним (131), 21:37, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вместо дидовой гоутушной лапши, ограниченной одной функцией

    Вот именно, что у тебя одна функция, а в ней намешано непосредственно логика, управление ресурсами и обработка ошибок. И все это склеено сполями из goto.

    > теперь ковыряемся в DWARF-лапше размазанной по всем файлам.

    В том-то и дело, что не ковыряемся: логика отдельно (сам код), управление ресурсами отдельно (RAII), обработка ошибок отдельно (исключения).

     
     
  • 8.137, Аноним (64), 22:08, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, да что ты сочиняешь логика у него отдельно, ага Будто у тебя try catch н... текст свёрнут, показать
     
     
  • 9.145, Аноним (125), 23:46, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет В этом как бы и смысл исключений отделять мух от котлет, а не как в сишочк... текст свёрнут, показать
     
     
  • 10.150, Аноним (64), 00:39, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    include iostream include stdexcept int main try ... текст свёрнут, показать
     
     
  • 11.151, Аноним (125), 00:44, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот конкретно то, что ты написал - нет Но я хз, что ты этим кодом хотел сказать... текст свёрнут, показать
     
     
  • 12.153, Аноним (64), 00:54, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну покажи тогда пжлст пример где try catch не в основной логике, чтоб мухи отдел... текст свёрнут, показать
     
  • 4.110, 12yoexpert (ok), 19:47, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Оно помогает перестать ковыряться в дидовой гоутушной лапше,

    ога
    1) goto - плохо
    2) диды так обрабатывают ошибки
    3) на C/C++ пишут только диды
    так сказали веб-синьоры на курсах

    зато RAII - манна небесная, позволяет ловить исключения, исключения, брошенные в обработчиках исключений, конструкторах и деструкторах, вместо дидовской немодной обработки ошибок. или нет, давай лучше засунем в наши типы что-нибудь вроде ::is_null(), ::is_ready() или будем кидать те же ошибки, но уже при работе с ресурсом, это же так здорово, да? чтобы вообще никто и никогда даже в теории не смог обработать ошибки

    в чём ты точно хорошо разбираешься - как приготовить бургер и заорать "свободная касса", т.е. обслуживать людей, которые понимают, почему RAII - corruption

     
     
  • 5.111, Аноним (111), 19:54, 02/03/2026 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 5.114, Аноним (125), 20:02, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > RAII - манна небесная, позволяет ловить исключения

    Нет, RAII - это не способ ловить исключения. RAII вообще не имеет никакого отношения к исключениям и их обработке.

    Поздравляю, ты как всегда сел в лужу. 👍

     

     ....большая нить свёрнута, показать (22)

  • 1.70, ИмяХ (ok), 17:35, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >>поддержка именованных циклов

    Зумеры заново изобрели goto

     
     
  • 2.78, Аноним (79), 18:08, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что ты спонсоры скажешь куда потратили деньги?
     
  • 2.80, нах. (?), 18:10, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    не изобрели а снова победили!
     

  • 1.81, Ананоним (?), 18:17, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отец, прости их, потому что они не ведают, что творят...

    Извратили лаконичные языки хуже некуда. Вместо того чтобы создать класс с деструктором и использовать по классике, им нужны всякие деферы.

     
     
  • 2.85, Аноним (71), 18:43, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вместо того чтобы создать класс с деструктором и использовать по классике, им нужны всякие деферы.

    На каждую функцию лепить классы? Вы же замахаетесь.
    А дефер нужен чтобы подчистить продукты жизнедеятельности функции - поочищать память, занулить нужное, закрыть дескрипторы и тд.

     
     
  • 3.87, Ананоним (?), 18:49, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Вместо того чтобы создать класс с деструктором и использовать по классике, им нужны всякие деферы.
    > На каждую функцию лепить классы? Вы же замахаетесь.

    Кажется ты не понимаешь принципов ООП. Си подходит для низкоуровневых задач, там где надо всё руками для полного контроля, в ином случае подходит Си++. Ну а если гвозди забивать микроскопами, тогда и получится что микроскопы деградируют до очень сложных и дорогих молотков.

    > А дефер нужен чтобы подчистить продукты жизнедеятельности функции - поочищать память, занулить
    > нужное, закрыть дескрипторы и тд.

    Приемлимые способы "подчистить продукты жизнедеятельности функции" всё давно придумано и используется. Но ты не осилил.

     
  • 3.89, Ананоним (?), 18:51, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > поочищать память, занулить нужное, закрыть дескрипторы и тд.

    Напиши хороший класс для памяти, нужного и файла (дескриптора), и тебе не нужно будет ничего подчищать вручную.

     
  • 2.109, Сладкая булочка (?), 19:35, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Отец, прости их, потому что они не ведают, что творят...
    > Извратили лаконичные языки хуже некуда. Вместо того чтобы создать класс с деструктором
    > и использовать по классике, им нужны всякие деферы.

    То есть для очистки ресурсов нужно втаскивать ООП в язык? Вы из какой палаты, товарищ?

     
     
  • 3.121, Ананоним (?), 20:22, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С царской палаты я. ООП в языке уже есть, C++ называется. Просто вы там не тот инструмент выбрали, коль вам так нужна автоматика очистки.
     
  • 3.122, Аноним (125), 20:28, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > То есть для очистки ресурсов нужно втаскивать ООП в язык?

    А языках без gc ресурсы по-другому и не очищаются: либо деструкторы (и классическое ООП им не обязательно), либо 100500 раз ручками пишешь defer.

     
     
  • 4.135, 12yoexpert (ok), 22:00, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    какое вообще отношение деструкторы могут иметь к ООП?
     
  • 4.136, Сладкая булочка (?), 22:01, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> То есть для очистки ресурсов нужно втаскивать ООП в язык?
    > и классическое ООП им не обязательно

    В сообщении, на которое был ответ https://www.opennet.me/openforum/vsluhforumID3/139378.html#81 говорилось именно про классы с деструктором

    >  Вместо того чтобы создать класс с деструктором и использовать по классике, им нужны всякие деферы.

    В gcc уже есть расширение, которое позволяет через атрибут привязать к объекту указатель на функцию для очистки.

     
     
  • 5.147, Аноним (125), 23:56, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В gcc уже есть расширение, которое позволяет через атрибут привязать к объекту указатель на функцию для очистки.

    Во-первых, оно работает только для объектов на стеке. Для композитных объектов, вложенные объекты тебе придется по-классике ручками удалять.

    Во-вторых, "уже есть" не GCC-расширение, а именно деструкторы в C++. С 80-х годов уже есть. GCC-расширение - чистой воды костыль, причем вендорлочный, в отличие от деструкторов C++.

     
     
  • 6.148, Сладкая булочка (?), 00:11, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> В gcc уже есть расширение, которое позволяет через атрибут привязать к объекту указатель на функцию для очистки.
    > Во-первых, оно работает только для объектов на стеке.

    Как и defer также только для Scope-based resource management.  

     
  • 6.149, Сладкая булочка (?), 00:30, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Для композитных объектов, вложенные объекты тебе придется по-классике ручками удалять.

    А как вы в С будете неявно создавать композитные объекты? У вас будет какой-нибудь Foo *foo_new(), который будет неявно что-то там делать. Очевидно будет и void foo_free(Foo *f), вот вы и пишете в своей функции

    Foo *f = foo_new();
    defer foo_free(f);

    И, в отличите от defer, для атрибутов можно одну и ту же функцию переиспользовать. Вот пример

            _cleanup_free_ char *subvolume = NULL, *parent = NULL;
            _cleanup_close_ int fd = -EBADF;

     
     
  • 7.152, Аноним (125), 00:46, 03/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А как вы в С будете неявно создавать композитные объекты?

    Речь шла не о том, чтобы их неявно создавать, а о том, чтобы они автоматом удалялись с родителем.

     

  • 1.86, Аноним (86), 18:48, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не умеет в создание и интроспекцию DOS MZ и NE.
     
  • 1.97, Аноним (99), 19:13, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам и оператору switch

    О, круто! Ещё надо присваивать имена присвоениям переменных и присвоениям имён циклам, операторам switch и присвоениям переменных.
    > которые можно указывать в операторах break и continue для явного определения цикла, из которого производится выход.

    Поперёк вложенности? Это ещё более круто! Это выведет возможности по наведению бардака в коде на совершенно новый, ранее недосягаемый уровень!

     
  • 1.104, Аноним (86), 19:23, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Для включения следует использовать флаг "-fsanitize=alloc-token".

    Без поддержки в валгринде бесполезно.

     
  • 1.133, Аноним (133), 21:49, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Он до сих пор более жирные бинарники генерирует чем gcc? А то я попробовал собрать u-boot для allwinner'а через clang 21. По сравнению с gcc 14 u-boot spl получился 22 кб, почти в лимит 24 вложился, против 16 кб в gcc.
     
     
  • 2.146, Аноним (146), 23:55, 02/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Оптимизация путём инлайнинга.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру