[PATCH] D30850: [XRay] [compiler-rt] Refactor logic for xray fdr logging. NFC.

Laurent Nicolas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 16 10:57:18 PDT 2017


lonico77 added inline comments.


================
Comment at: compiler-rt/trunk/lib/xray/xray_fdr_logging_impl.h:137
+        Report("Failed to release buffer at %p; error=%s\n", Buffer.Buffer,
+               EC.message().c_str());
+      return;
----------------
I'm seeing the following error when building with clang 3.9.1:


```
In file included from /x/eng/rtpbld01/scratch/laurentn/llvm-wss/sources/llvm_import_from_git_rtp2/llvm/projects/compiler-rt/lib/xray/tests/unit/xray_fdr_log_printer_tool.cc:15:
/x/eng/rtpbld01/scratch/laurentn/llvm-wss/sources/llvm_import_from_git_rtp2/llvm/projects/compiler-rt/lib/xray/tests/../xray_fdr_logging_impl.h:137:19: error: implicit instantiation of undefined template 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >'
               EC.message().c_str());
                  ^
/x/eng/btools/arch/x86_64-redhat-rhel6/compilers_n_tools/pkgs/llvm-3.9.1-p1/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
    class _LIBCPP_TYPE_VIS_ONLY basic_string;
                                ^
```

And the same error shows up in 5 other locations where EC.message() is used.

I was able to bypass the error by adding

```
 #include <mutex>
+#include <string>
 #include <system_error>
```
in llvm/projects/compiler-rt/lib/xray/xray_buffer_queue.h

but I'm not sure it's the best way to address this across platforms.




Repository:
  rL LLVM

https://reviews.llvm.org/D30850





More information about the llvm-commits mailing list