GCC Middle and Back End API Reference
gimple-ssa-warn-access.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool check_nul_terminated_array (tree, tree, tree=NULL_TREE)
 
void warn_string_no_nul (location_t, gimple *, const char *, tree, tree, tree=NULL_TREE, bool=false, const wide_int[2]=NULL)
 
void warn_string_no_nul (location_t, tree, const char *, tree, tree, tree=NULL_TREE, bool=false, const wide_int[2]=NULL)
 
tree unterminated_array (tree, tree *=NULL, bool *=NULL)
 
bool maybe_warn_nonstring_arg (tree, gimple *)
 
bool maybe_warn_nonstring_arg (tree, tree)
 
bool maybe_warn_for_bound (opt_code, location_t, gimple *, tree, tree[2], tree, const access_data *=NULL)
 
bool maybe_warn_for_bound (opt_code, location_t, tree, tree, tree[2], tree, const access_data *=NULL)
 
bool check_access (tree, tree, tree, tree, tree, access_mode, const access_data *=NULL)
 

Function Documentation

◆ check_access()

bool check_access ( tree expr,
tree dstwrite,
tree maxread,
tree srcstr,
tree dstsize,
access_mode mode,
const access_data * pad = NULL )
extern

References check_access().

◆ check_nul_terminated_array()

bool check_nul_terminated_array ( tree expr,
tree src,
tree bound = NULL_TREE )
extern
Pass to detect and issue warnings for invalid accesses, including
invalid or mismatched allocation/deallocation calls.

Copyright (C) 2020-2024 Free Software Foundation, Inc.
Contributed by Martin Sebor <msebor@redhat.com>.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   

References check_nul_terminated_array().

◆ maybe_warn_for_bound() [1/2]

bool maybe_warn_for_bound ( opt_code opt,
location_t loc,
gimple * stmt,
tree func,
tree bndrng[2],
tree size,
const access_data * pad = NULL )
extern

◆ maybe_warn_for_bound() [2/2]

bool maybe_warn_for_bound ( opt_code opt,
location_t loc,
tree expr,
tree func,
tree bndrng[2],
tree size,
const access_data * pad = NULL )
extern

◆ maybe_warn_nonstring_arg() [1/2]

bool maybe_warn_nonstring_arg ( tree fndecl,
gimple * stmt )
extern

◆ maybe_warn_nonstring_arg() [2/2]

bool maybe_warn_nonstring_arg ( tree fndecl,
tree expr )
extern

◆ unterminated_array()

tree unterminated_array ( tree exp,
tree * size,
bool * exact )
extern
If EXP refers to an unterminated constant character array return
the declaration of the object of which the array is a member or
element and if SIZE is not null, set *SIZE to the size of
the unterminated array and set *EXACT if the size is exact or
clear it otherwise.  Otherwise return null.   

References c_strlen(), c_strlen_data::decl, exp(), fold_build2, fold_convert, c_strlen_data::minlen, NULL_TREE, c_strlen_data::off, ssizetype, TREE_CODE, and TREE_OPERAND.

Referenced by check_nul_terminated_array(), expand_builtin_strnlen(), and gimple_fold_builtin_stpcpy().

◆ warn_string_no_nul() [1/2]

void warn_string_no_nul ( location_t loc,
gimple * stmt,
const char * fname,
tree arg,
tree decl,
tree size = NULL_TREE,
bool exact = false,
const wide_int bndrng[2] = NULL )
extern

References warn_string_no_nul().

◆ warn_string_no_nul() [2/2]

void warn_string_no_nul ( location_t loc,
tree expr,
const char * fname,
tree arg,
tree decl,
tree size = NULL_TREE,
bool exact = false,
const wide_int bndrng[2] = NULL )
extern

References warn_string_no_nul().