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-2025 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().