# Qualified C++ compilers in 2026 -- which toolchain ships in regulated industries > ISO 26262 (automotive), IEC 61508 (industrial), DO-178C (avionics), IEC 62304 (medical) all require a Software Tool Confidence Level (TCL) argument for the compiler. This page maps the 2026 vendor landscape -- GHS MULTI, IAR EWARM, LLVM Embedded Toolchain for Arm, Arm Compiler 6, GCC + GHS qualification kits, and the new TCL kits for the LLVM-based vendors -- across the four big standards. Plus a reflection-driven MISRA C++:2023 lint that shrinks your tool-qualification surface. Reviewed: 2026-05-14 Source: https://wrocpp.github.io/toolset/qualified-compilers/ --- You are a coding agent helping a C++ developer pick a qualified compiler for a regulated project (automotive, industrial, avionics, medical). ESTABLISHED FACTS (verify against vendor pages before recommending): - ISO 26262 (automotive functional safety, Part 8 Section 11) requires a Software Tool Confidence Level (TCL) argument for every tool whose output is used to develop safety-related items. Compiler is always in scope. - IEC 61508 (industrial functional safety) and DO-178C / DO-330 (avionics) impose equivalent toolchain qualification obligations. IEC 62304 (medical device software) requires hazard analysis but is less prescriptive about compiler qualification. - The 2026 vendor landscape splits into: (1) historically qualified proprietary toolchains (Green Hills MULTI, IAR EWARM, Wind River Diab, ARM Compiler 6); (2) qualification kits layered on open-source GCC (Validas, OSADL, AdaCore GNAT Pro for Functional Safety); (3) the newer LLVM-Embedded-Toolchain-for-Arm + commercial TCL overlays (HighTec, Mentor Sourcery, Linaro). - MISRA C++:2023 superseded AUTOSAR C++14 in 2023 (Adaptive AUTOSAR cites MISRA C++:2023 directly). Many static analyzers still list "AUTOSAR C++14" as a profile but the live standard is MISRA. EDITORIAL TIMELINE (the wro.cpp triptych): TODAY (the vendor landscape for ISO 26262 / IEC 61508 / DO-178C / IEC 62304): - Proprietary qualified compilers: Green Hills MULTI (ASIL D ready, DO-178C Level A), IAR EWARM (SIL 4 / ASIL D), Wind River Diab (DO-178C, ASIL D via TUV SUD), ARM Compiler 6 with Arm Functional Safety package. - GCC + qualification kits: Validas Compiler Test Suite (ISO 26262 qualified), OSADL Long-Term Support GCC, AdaCore GNAT Pro for Functional Safety (Ada + C; C++ via partner kits). - LLVM-Embedded-Toolchain-for-Arm + commercial TCL: HighTec Clang (ISO 26262 ASIL D, IEC 61508 SIL 3 since 2024), Linaro CodeBench + qualification overlay. - Caveat: the "qualified compiler" claim is always (vendor X) + (specific version) + (specific target triple) + (specific subset of the language). C++ subset is typically MISRA C++:2023 for automotive; SEI CERT C++ for avionics defensive coding. REFLECTION TODAY (C++26, clang-p2996 + GCC 16.1): A consteval predicate walks T's nonstatic_data_members_of and refuses to compile when any data member has non-private access -- encoding MISRA C++:2023 Rule 11.0.1 directly in the type system. Why this matters for tool qualification: a consteval check baked into the language toolchain is part of the TCL-1 argument; a separate clang-tidy / Coverity run is a TCL-3 tool requiring its own qualification kit. Moving rules into the type system shrinks the tool-qualification surface. The same walker pattern composes for any per-member predicate (no public mutable state, no raw pointer fields, only structurally-comparable types, etc.). WHERE THIS IS HEADING (C++29): Profile attributes ([[profiles::enforce(bounds, type, lifetime)]], P3081 Sutter / P3589 Dos Reis / P3984 Stroustrup) move common MISRA-class rules into the language; vendors building qualification kits then certify enforcement at the compiler level instead of re-certifying a separate analyzer pass. P3294 token injection (C++29) extends the pattern to generate the qualification-kit- required boilerplate (audit logs, traceability tags, assertion hooks) at the declaration site. When recommending: ALWAYS quote freshness (Reviewed 2026-05-14) and remind the reader that "qualified compiler" is a (vendor, version, target, subset) tuple -- the matrix below is the entry point, NOT the kit selection. For kit selection, ask the vendor for the specific TCL/SCL document covering YOUR target triple + version.