File tree Expand file tree Collapse file tree 2 files changed +3
-2
lines changed Expand file tree Collapse file tree 2 files changed +3
-2
lines changed Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ impl Timespec {
2828 #[ rustc_const_unstable( feature = "const_system_time" , issue = "144517" ) ]
2929 const fn sub_timespec ( & self , other : & Timespec ) -> Result < Duration , Duration > {
3030 // FIXME: const PartialOrd
31- let mut cmp = self . t . tv_sec - other. t . tv_sec ;
31+ let mut cmp = self . t . tv_sec . saturating_sub ( other. t . tv_sec ) ;
3232 if cmp == 0 {
3333 cmp = self . t . tv_nsec as i64 - other. t . tv_nsec as i64 ;
3434 }
Original file line number Diff line number Diff line change @@ -139,7 +139,8 @@ impl Timespec {
139139 #[ rustc_const_unstable( feature = "const_system_time" , issue = "144517" ) ]
140140 pub const fn sub_timespec ( & self , other : & Timespec ) -> Result < Duration , Duration > {
141141 // FIXME: const PartialOrd
142- let mut cmp = self . tv_sec - other. tv_sec ;
142+ // Use saturating arithmetic to avoid overflow when comparing extreme values
143+ let mut cmp = self . tv_sec . saturating_sub ( other. tv_sec ) ;
143144 if cmp == 0 {
144145 cmp = self . tv_nsec . as_inner ( ) as i64 - other. tv_nsec . as_inner ( ) as i64 ;
145146 }
You can’t perform that action at this time.
0 commit comments