[PR 87347] Prevent segfaults if TYPE_ARG_TYPES is NULL

2018-09-26  Martin Jambor  <mjambor@suse.cz>

	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
This commit is contained in:
Martin Jambor 2018-09-26 13:58:18 +02:00 committed by Martin Jambor
parent 6fe0c58b9f
commit ce6f088889
4 changed files with 22 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2018-09-26 Martin Jambor <mjambor@suse.cz>
PR c/87347
* c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL. Fix
comment.
2018-09-17 David Malcolm <dmalcolm@redhat.com>
* c-objc-common.c (range_label_for_type_mismatch::get_text):

View file

@ -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)
{

View file

@ -1,3 +1,8 @@
2018-09-26 Martin Jambor <mjambor@suse.cz>
PR c/87347
* gcc.dg/pr87347.c: New test.
2018-09-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71131

View file

@ -0,0 +1,6 @@
/* {dg-do compile} */
/* { dg-options "-Wabsolute-value" } */
int a;
int abs();
void b() { abs(a); }