Use _LIBCPP_UNREACHABLE to convince GCC that non-void functions actually always return
authorEric Fiselier <eric@efcs.ca>
Fri, 20 Jul 2018 01:44:33 +0000 (01:44 +0000)
committerEric Fiselier <eric@efcs.ca>
Fri, 20 Jul 2018 01:44:33 +0000 (01:44 +0000)
llvm-svn: 337519

libcxx/include/experimental/filesystem
libcxx/src/experimental/filesystem/filesystem_common.h

index be73bf135bc4c6bb73b5992fec285acd5878c0f2..6481aa680a23730cdc166c7ca11addc4095c23ca 100644 (file)
 
 #include <experimental/__config>
 #include <cstddef>
+#include <cstdlib>
 #include <chrono>
 #include <iterator>
 #include <iosfwd>
@@ -2250,6 +2251,7 @@ private:
           __ec->clear();
         return __data_.__type_;
       }
+      _LIBCPP_UNREACHABLE();
     }
 
     _LIBCPP_INLINE_VISIBILITY
@@ -2270,6 +2272,7 @@ private:
         return __data_.__type_;
       }
       }
+      _LIBCPP_UNREACHABLE();
     }
 
     _LIBCPP_INLINE_VISIBILITY
@@ -2284,6 +2287,7 @@ private:
       case _RefreshSymlink:
         return file_status(__get_ft(__ec), __data_.__non_sym_perms_);
       }
+      _LIBCPP_UNREACHABLE();
     }
 
     _LIBCPP_INLINE_VISIBILITY
@@ -2299,6 +2303,7 @@ private:
       case _RefreshSymlinkUnresolved:
         return file_status(__get_sym_ft(__ec), __data_.__sym_perms_);
       }
+      _LIBCPP_UNREACHABLE();
     }
 
 
@@ -2324,6 +2329,7 @@ private:
         return __data_.__size_;
       }
       }
+      _LIBCPP_UNREACHABLE();
     }
 
     _LIBCPP_INLINE_VISIBILITY
@@ -2342,6 +2348,7 @@ private:
         return __data_.__nlink_;
       }
       }
+      _LIBCPP_UNREACHABLE();
     }
 
     _LIBCPP_INLINE_VISIBILITY
@@ -2364,6 +2371,7 @@ private:
         return __data_.__write_time_;
       }
       }
+      _LIBCPP_UNREACHABLE();
     }
 private:
     _Path __p_;
index ab7ecbd013ed79f80eb989b7106639f259960cbe..0dd6e9ee4389d01e1f9ffdea144d5ee6a5968613 100644 (file)
@@ -228,8 +228,8 @@ public:
 } // namespace time_util
 
 
-using TimeSpec = struct timespec;
-using StatT = struct stat;
+using TimeSpec = struct ::timespec;
+using StatT = struct ::stat;
 
 using FSTime = time_util::fs_time_util<file_time_type, time_t, struct timespec>;