[crtbegin] Fix an off-by-1 bug in __do_fini
authorFangrui Song <maskray@google.com>
Fri, 3 May 2019 00:11:53 +0000 (00:11 +0000)
committerFangrui Song <maskray@google.com>
Fri, 3 May 2019 00:11:53 +0000 (00:11 +0000)
Differential Revision: https://reviews.llvm.org/D61367

llvm-svn: 359850

compiler-rt/lib/crt/crtbegin.c

index 523ff6f..cfbe5e5 100644 (file)
@@ -77,7 +77,7 @@ static void __attribute__((used)) __do_fini() {
     __deregister_frame_info(__EH_FRAME_LIST__);
 
   const size_t n = __DTOR_LIST_END__ - __DTOR_LIST__ - 1;
-  for (size_t i = 1; i < n; i++) __DTOR_LIST__[i]();
+  for (size_t i = 1; i <= n; i++) __DTOR_LIST__[i]();
 #endif
 }