From: Martin Jambor Date: Wed, 26 Sep 2018 11:58:18 +0000 (+0200) Subject: [PR 87347] Prevent segfaults if TYPE_ARG_TYPES is NULL X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ce6f08888905bb217b9a4cff8a0704e240ec5c46;p=gcc.git [PR 87347] Prevent segfaults if TYPE_ARG_TYPES is NULL 2018-09-26 Martin Jambor PR c/87347 c/ * c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL. Fix comment. testsuite/ * gcc.dg/pr87347.c: New test. From-SVN: r264640 --- diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 6fd76cfe970..1ea87b95a52 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2018-09-26 Martin Jambor + + PR c/87347 + * c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL. Fix + comment. + 2018-09-17 David Malcolm * c-objc-common.c (range_label_for_type_mismatch::get_text): diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 1766a256633..1f173fc10e2 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -9102,8 +9102,8 @@ sizeof_ptr_memacc_comptypes (tree type1, tree type2) } /* Warn for patterns where abs-like function appears to be used incorrectly, - gracely ignore any non-abs-like function. The warning location should be - LOC. FNDECL is the declaration of called function, it must be a + gracefully ignore any non-abs-like function. The warning location should + be LOC. FNDECL is the declaration of called function, it must be a BUILT_IN_NORMAL function. ARG is the first and only argument of the call. */ @@ -9223,6 +9223,9 @@ warn_for_abs (location_t loc, tree fndecl, tree arg) return; } + if (!TYPE_ARG_TYPES (TREE_TYPE (fndecl))) + return; + tree ftype = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))); if (TREE_CODE (atype) == COMPLEX_TYPE) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2533259cf9c..49df3a1398b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-09-26 Martin Jambor + + PR c/87347 + * gcc.dg/pr87347.c: New test. + 2018-09-26 Paolo Carlini PR c++/71131 diff --git a/gcc/testsuite/gcc.dg/pr87347.c b/gcc/testsuite/gcc.dg/pr87347.c new file mode 100644 index 00000000000..d0bdf2a9fec --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr87347.c @@ -0,0 +1,6 @@ +/* {dg-do compile} */ +/* { dg-options "-Wabsolute-value" } */ + +int a; +int abs(); +void b() { abs(a); }