Skip to content

Clang

  • Published on
    Clang 22.1.0(2026-02-24)은 MSVC ABI를 타깃할 때의 소멸자 코드 생성을 두 군데 바꿨습니다. 하나는 ::delete 처리를 MSVC와 맞춘 것이고, 다른 하나는 2014년에 열린 이슈를 11년 7개월 만에 닫은 vector deleting destructor 지원입니다. 둘 다 진짜 버그를 고치는 변경이지만, vftable 슬롯에 들어가는 심볼이 바뀌는 ABI 변경이라 clang 21 이하로 빌드한 오브젝트와 섞으면 메모리가 깨집니다. 그리고 릴리스 다음 날 delete[] 힙 손상 이슈가 올라왔습니다 — 그중 하나는 22.1.2에 백포트됐지만, 다른 하나는 2026-07-16 현재 최신인 22.1.8까지도 들어가 있지 않습니다. 이 글은 MSVC ABI의 소멸자 3종과 숨은 플래그 파라미터, 이 기능이 네 번 랜딩되고 세 번 되돌려진 이유(두 번은 Chromium이 막았습니다), 링크는 되는데 런타임에 힙이 깨지는 정확한 메커니즘, 그리고 지금 clang-cl을 쓰는 사람이 확인해야 할 것을 정리합니다.
  • Published on
    2026년의 C++ 지도. C++ 23 (2024년 10월 ISO/IEC 14882:2024로 출간) 의 std::expected·std::print·std::generator, C++ 26의 진짜 주연인 Reflection (P2996) 과 Senders/Receivers (P2300), Linear Algebra (P1673), 마침내 쓸 만한 Modules, 성숙해진 Ranges. 빌드 도구는 CMake 3.30 / Meson / xmake / build2 / Bazel C++, 패키지는 Conan 2 와 vcpkg, 컴파일러는 Clang 19 / GCC 14 / MSVC, 그리고 libc++ vs libstdc++. Sanitizers (ASan / UBSan / TSan / MSan) 와 후계 언어 후보 (Carbon · Hylo · Cppfront), 한국·일본의 현장 사례까지 — 누가 C++ 을 골라야 하고, 어떻게 굴려야 하는가.
  • Published on
    Rust, Swift, Clang, Julia, Kotlin Native, WebAssembly. 이 모두의 공통점은 LLVM을 백엔드로 사용한다는 것입니다. 이 글은 LLVM의 내부를 처음부터 해부합니다. 3단 아키텍처(프론트엔드 → IR → 백엔드), SSA 기반 LLVM IR의 구조, 수백 개의 옵티마이저 패스들(InstCombine, GVN, LICM, 인라이너), SelectionDAG와 GlobalISel, LTO와 PGO, Clang 프론트엔드, 그리고 MLIR의 dialect 기반 멀티레벨 IR — 현대 컴파일러가 어떻게 동작하는지 제대로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.