plotfi marked an inline comment as done.
plotfi added inline comments.

================
Comment at: cfe/trunk/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp:329
+  assert(!Path.empty() && "Path.empty()");
 
   const int InotifyFD = inotify_init1(IN_CLOEXEC);
----------------

@gribozavr As an example, let say we stuck the following right here:


```
return llvm::make_error<llvm::StringError>("llvm::Expected will blow up", 
llvm::inconvertibleErrorCode());
```

When running:



```
DirectoryWatcherTests --gtest_filter=DirectoryWatcherTest.AddFiles
```

You will get:

```
Note: Google Test filter = DirectoryWatcherTest.AddFiles
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from DirectoryWatcherTest
[ RUN      ] DirectoryWatcherTest.AddFiles
Expected<T> must be checked before access or destruction.
Unchecked Expected<T> contained error:
llvm::Expected will blow up #0 0x0000000000246b8f 
llvm::sys::PrintStackTrace(llvm::raw_ostream&) 
/mnt/nvme0/llvm-project/llvm/lib/Support/Unix/Signals.inc:533:13
 #1 0x00000000002450d2 llvm::sys::RunSignalHandlers() 
/mnt/nvme0/llvm-project/llvm/lib/Support/Signals.cpp:69:18
 #2 0x0000000000247268 SignalHandler(int) 
/mnt/nvme0/llvm-project/llvm/lib/Support/Unix/Signals.inc:385:1
 #3 0x00007fa2a284d890 __restore_rt 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x12890)
 #4 0x00007fa2a12f6e97 gsignal 
/build/glibc-OTsEL5/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #5 0x00007fa2a12f8801 abort /build/glibc-OTsEL5/glibc-2.27/stdlib/abort.c:81:0
 #6 0x00000000002229db llvm::raw_ostream::operator<<(llvm::StringRef) 
/mnt/nvme0/llvm-project/llvm/include/llvm/Support/raw_ostream.h:176:7
 #7 0x00000000002229db llvm::raw_ostream::operator<<(char const*) 
/mnt/nvme0/llvm-project/llvm/include/llvm/Support/raw_ostream.h:186:0
 #8 0x00000000002229db llvm::Expected<std::unique_ptr<clang::DirectoryWatcher, 
std::default_delete<clang::DirectoryWatcher> > >::fatalUncheckedExpected() 
const /mnt/nvme0/llvm-project/llvm/include/llvm/Support/Error.h:661:0
 #9 0x000000000021e148 
(build/tools/clang/unittests/DirectoryWatcher/./DirectoryWatcherTests+0x21e148)
#10 0x000000000024cbaa testing::internal::UnitTestImpl::os_stack_trace_getter() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4919:7
#11 0x000000000024cbaa testing::Test::Run() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2481:0
#12 0x000000000024d840 testing::internal::UnitTestImpl::os_stack_trace_getter() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4919:7
#13 0x000000000024d840 testing::TestInfo::Run() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2660:0
#14 0x000000000024dee7 testing::TestCase::Run() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:2773:44
#15 0x00000000002557b7 testing::internal::UnitTestImpl::RunAllTests() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4648:24
#16 0x0000000000255411 testing::UnitTest::Run() 
/mnt/nvme0/llvm-project/llvm/utils/unittest/googletest/src/gtest.cc:4257:10
#17 0x000000000024859b main 
/mnt/nvme0/llvm-project/llvm/utils/unittest/UnitTestMain/TestMain.cpp:50:3
#18 0x00007fa2a12d9b97 __libc_start_main 
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:344:0
#19 0x000000000021b02a _start 
(build/tools/clang/unittests/DirectoryWatcher/./DirectoryWatcherTests+0x21b02a)
Aborted (core dumped)
```

This is preferable to deadlocking. 


Repository:
  rL LLVM

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

https://reviews.llvm.org/D65704



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to