i>Various GCC design decisions make it very difficult to reuse: its build
        system is difficult to modify, you can't link multiple targets into one
        binary, you can't link multiple front-ends into one binary, it uses a
        custom garbage collector, uses global variables extensively, is not
        reentrant or multi-threadable, etc.  Clang has none of these problems.
        </li>
    <li>Clang does not implicitly simplify code as it parses it like GCC does.
        Doing so causes m