[PATCH] D60644: [compiler-rt][builtins][sanitizers] Guard test cases with macros with GLIBC* macros
Hubert Tong via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 25 07:12:53 PDT 2019
hubert.reinterpretcast added inline comments.
================
Comment at: compiler-rt/test/sanitizer_common/TestCases/Posix/getpw_getgr.cc:76
+ // Run this if we're using the C++11 ABI. There seems to be an issue
+ // that maybe related to _GLIBCXX_USE_CXX11_ABI and the string assigned.
+#if _GLIBCXX_USE_CXX11_ABI
----------------
Since we now have a better understanding of the issue, the solution seems to be that the test should not be using `std::string`.
```
diff -U0 a/getpw_getgr.cc b/getpw_getgr.cc
--- a/getpw_getgr.cc 2019-03-08 12:56:26.499543426 -0500
+++ b/getpw_getgr.cc 2019-04-25 10:06:56.240191290 -0400
@@ -11 +10,0 @@
-#include <string>
@@ -13 +12 @@
-std::string any_group;
+std::unique_ptr<char []> any_group;
@@ -51,2 +50,5 @@
- if (any_group.empty())
- any_group = result->gr_name;
+ if (!any_group) {
+ auto len = strlen(result->gr_name);
+ any_group.reset(new char[len + 1]);
+ memcpy(any_group.get(), result->gr_name, len + 1);
+ }
@@ -75 +77 @@
- test<group>(&getgrnam, any_group.c_str());
+ test<group>(&getgrnam, any_group.get());
@@ -94 +96 @@
- test_r<group>(&getgrnam_r, any_group.c_str());
+ test_r<group>(&getgrnam_r, any_group.get());
```
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D60644/new/
https://reviews.llvm.org/D60644
More information about the llvm-commits
mailing list