Add gcc_assert about stack alignment (PR sanitizer/82517). 76/210376/3
authormarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2018 11:47:26 +0000 (11:47 +0000)
committerDongkyun Son <dongkyun.s@samsung.com>
Mon, 22 Jul 2019 11:54:34 +0000 (20:54 +0900)
2018-01-09  Martin Liska  <mliska@suse.cz>

PR sanitizer/82517
* asan.c (shadow_mem_size): Add gcc_assert.

(cherry picked from e56a070cadd948b81a5b769e17c8c1162829de27)

Change-Id: I0f97457dfc30b6afbde93ff53e2b5d923946a122
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256378 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/asan.c

index c5a8c80..4c738e3 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-09  Martin Liska  <mliska@suse.cz>
+
+       PR sanitizer/82517
+       * asan.c (shadow_mem_size): Add gcc_assert.
+
 2017-07-03  Martin Liska  <mliska@suse.cz>
 
        * asan.c (asan_emit_stack_protection): Unpoison just red zones
index 20eae75..cb5a21f 100644 (file)
@@ -1043,6 +1043,11 @@ asan_function_start (void)
 static unsigned HOST_WIDE_INT
 shadow_mem_size (unsigned HOST_WIDE_INT size)
 {
+  /* It must be possible to align stack variables to granularity
+     of shadow memory.  */
+  gcc_assert (BITS_PER_UNIT
+             * ASAN_SHADOW_GRANULARITY <= MAX_SUPPORTED_STACK_ALIGNMENT);
+
   return ROUND_UP (size, ASAN_SHADOW_GRANULARITY) / ASAN_SHADOW_GRANULARITY;
 }