Skip to content
  • Rafael Espindola's avatar
    Add an c++ itanium demangler to llvm. · b940b66c
    Rafael Espindola authored
    This adds a copy of the demangler in libcxxabi.
    
    The code also has no dependencies on anything else in LLVM. To enforce
    that I added it as another library. That way a BUILD_SHARED_LIBS will
    fail if anyone adds an use of StringRef for example.
    
    The no llvm dependency combined with the fact that this has to build
    on linux, OS X and Windows required a few changes to the code. In
    particular:
    
        No constexpr.
        No alignas
    
    On OS X at least this library has only one global symbol:
    __ZN4llvm16itanium_demangleEPKcPcPmPi
    
    My current plan is:
    
        Commit something like this
        Change lld to use it
        Change lldb to use it as the fallback
    
        Add a few #ifdefs so that exactly the same file can be used in
        libcxxabi to export abi::__cxa_demangle.
    
    Once the fast demangler in lldb can handle any names this
    implementation can be replaced with it and we will have the one true
    demangler.
    
    llvm-svn: 280732
    b940b66c
Loading