[PATCH] D47625: [cmake] Detect presence of wide-char libedit at build time

Davide Italiano via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 27 17:37:59 PST 2019


davide added a comment.
Herald added a subscriber: jdoerfert.
Herald added a project: LLVM.

Pavel, this broke unicode handling for lldb on MacOS. If you type something in the lldb cmdline, it won't print the right character but a series of unicode sequences.
The main concern is that this also breaks the Swift REPL (powered by lldb).

Looks like something like this:

  $ git diff
  diff --git a/lldb/include/lldb/Host/Editline.h b/lldb/include/lldb/Host/Editline.h
  index cb40f1e6917..e53991c450f 100644
  --- a/lldb/include/lldb/Host/Editline.h
  +++ b/lldb/include/lldb/Host/Editline.h
  @@ -51,6 +51,7 @@
   #include <string>
   #include <vector>
   
  +#include "lldb/Host/Config.h"
   #include "lldb/Host/ConnectionFileDescriptor.h"
   #include "lldb/Host/Predicate.h"
   #include "lldb/Utility/FileSpec.h"

"fixes" the CMake build. I'm seeing failures if I apply the same patch to the Xcode project.

  In file included from /Users/davide/lldb/source/Host/common/Editline.cpp:14:
  /Users/davide/lldb/include/lldb/Host/Editline.h:330:29: error: no member named 'codecvt_utf8' in namespace 'std'
    std::wstring_convert<std::codecvt_utf8<wchar_t>> m_utf8conv;
                         ~~~~~^
  /Users/davide/lldb/include/lldb/Host/Editline.h:330:49: error: expected '(' for function-style cast or type construction
    std::wstring_convert<std::codecvt_utf8<wchar_t>> m_utf8conv;
                                           ~~~~~~~^
  /Users/davide/lldb/source/Host/common/Editline.cpp:413:24: error: use of undeclared identifier 'm_utf8conv'
      lines.AppendString(m_utf8conv.to_bytes(line));
                         ^
  /Users/davide/lldb/source/Host/common/Editline.cpp:577:26: error: use of undeclared identifier 'm_utf8conv'
        lines.AppendString(m_utf8conv.to_bytes(new_line_fragment));
                           ^
  /Users/davide/lldb/source/Host/common/Editline.cpp:628:30: error: use of undeclared identifier 'm_utf8conv'
                               m_utf8conv.from_bytes(lines[index]));
                               ^
  /Users/davide/lldb/source/Host/common/Editline.cpp:813:41: error: use of undeclared identifier 'm_utf8conv'
    m_input_lines[m_current_line_index] = m_utf8conv.from_bytes(currentLine);
                                          ^
  /Users/davide/lldb/source/Host/common/Editline.cpp:1319:14: error: use of undeclared identifier 'm_utf8conv'
        line = m_utf8conv.to_bytes(SplitLines(input)[0]);
               ^
  /Users/davide/lldb/source/Host/common/Editline.cpp:1389:8: error: no member named 'codecvt_utf8' in namespace 'std'
    std::codecvt_utf8<wchar_t> cvt;
    ~~~~~^
  /Users/davide/lldb/source/Host/common/Editline.cpp:1389:28: error: expected '(' for function-style cast or type construction
    std::codecvt_utf8<wchar_t> cvt;
                      ~~~~~~~^
  /Users/davide/lldb/source/Host/common/Editline.cpp:1389:30: error: use of undeclared identifier 'cvt'
    std::codecvt_utf8<wchar_t> cvt;
                               ^
  /Users/davide/lldb/source/Host/common/Editline.cpp:1396:13: error: use of undeclared identifier 'cvt'
      switch (cvt.in(state, input.begin(), input.end(), from_next, &out, &out + 1,
              ^
  11 errors generated.

Can you please take a look? If you need anything from me, just let me know!


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D47625/new/

https://reviews.llvm.org/D47625





More information about the llvm-commits mailing list