public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: David Malcolm <dmalcolm@redhat.com>
To: gcc-patches@gcc.gnu.org
Subject: [committed] analyzer: fix member call on null seen with ubsan [PR97178]
Date: Wed, 23 Sep 2020 13:30:20 -0400	[thread overview]
Message-ID: <20200923173020.2877-1-dmalcolm@redhat.com> (raw)

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to master as r11-3403-gf65ebb5210e2fded0f7b339219685f4480124f0c.

gcc/analyzer/ChangeLog:
	PR analyzer/97178
	* engine.cc (impl_run_checkers): Update for change to ext_state
	ctor.
	* program-state.cc (selftest::test_sm_state_map): Pass an engine
	instance to ext_state ctor.
	(selftest::test_program_state_1): Likewise.
	(selftest::test_program_state_2): Likewise.
	(selftest::test_program_state_merging): Likewise.
	(selftest::test_program_state_merging_2): Likewise.
	* program-state.h (extrinsic_state::extrinsic_state): Remove NULL
	default value for "eng" param.
---
 gcc/analyzer/engine.cc        |  2 +-
 gcc/analyzer/program-state.cc | 12 +++++++-----
 gcc/analyzer/program-state.h  |  4 ++--
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc
index d03e23a9b6e..e73df5eaa4c 100644
--- a/gcc/analyzer/engine.cc
+++ b/gcc/analyzer/engine.cc
@@ -4295,7 +4295,7 @@ impl_run_checkers (logger *logger)
     }
 
   /* Extrinsic state shared by nodes in the graph.  */
-  const extrinsic_state ext_state (checkers, logger, &eng);
+  const extrinsic_state ext_state (checkers, &eng, logger);
 
   const analysis_plan plan (sg, logger);
 
diff --git a/gcc/analyzer/program-state.cc b/gcc/analyzer/program-state.cc
index 71bb2864d6d..978d0f225dd 100644
--- a/gcc/analyzer/program-state.cc
+++ b/gcc/analyzer/program-state.cc
@@ -1055,7 +1055,8 @@ test_sm_state_map ()
   state_machine *sm = make_malloc_state_machine (NULL);
   auto_delete_vec <state_machine> checkers;
   checkers.safe_push (sm);
-  extrinsic_state ext_state (checkers);
+  engine eng;
+  extrinsic_state ext_state (checkers, &eng);
   state_machine::state_t start = sm->get_start_state ();
 
   /* Test setting states on svalue_id instances directly.  */
@@ -1187,7 +1188,7 @@ test_program_state_1 ()
   checkers.safe_push (sm);
 
   engine eng;
-  extrinsic_state ext_state (checkers, NULL, &eng);
+  extrinsic_state ext_state (checkers, &eng);
   region_model_manager *mgr = eng.get_model_manager ();
   program_state s (ext_state);
   region_model *model = s.m_region_model;
@@ -1216,7 +1217,7 @@ test_program_state_2 ()
 
   auto_delete_vec <state_machine> checkers;
   engine eng;
-  extrinsic_state ext_state (checkers, NULL, &eng);
+  extrinsic_state ext_state (checkers, &eng);
 
   program_state s (ext_state);
   region_model *model = s.m_region_model;
@@ -1239,7 +1240,7 @@ test_program_state_merging ()
   auto_delete_vec <state_machine> checkers;
   checkers.safe_push (make_malloc_state_machine (NULL));
   engine eng;
-  extrinsic_state ext_state (checkers, NULL, &eng);
+  extrinsic_state ext_state (checkers, &eng);
   region_model_manager *mgr = eng.get_model_manager ();
 
   program_state s0 (ext_state);
@@ -1304,7 +1305,8 @@ test_program_state_merging_2 ()
   program_point point (program_point::origin ());
   auto_delete_vec <state_machine> checkers;
   checkers.safe_push (make_signal_state_machine (NULL));
-  extrinsic_state ext_state (checkers);
+  engine eng;
+  extrinsic_state ext_state (checkers, &eng);
 
   const state_machine::state test_state_0 ("test state 0", 0);
   const state_machine::state test_state_1 ("test state 1", 1);
diff --git a/gcc/analyzer/program-state.h b/gcc/analyzer/program-state.h
index cb0df8cd904..fe3bd817d3b 100644
--- a/gcc/analyzer/program-state.h
+++ b/gcc/analyzer/program-state.h
@@ -29,8 +29,8 @@ class extrinsic_state
 {
 public:
   extrinsic_state (auto_delete_vec <state_machine> &checkers,
-		   logger *logger = NULL,
-		   engine *eng = NULL)
+		   engine *eng,
+		   logger *logger = NULL)
   : m_checkers (checkers), m_logger (logger), m_engine (eng)
   {
   }
-- 
2.26.2


                 reply	other threads:[~2020-09-23 17:30 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200923173020.2877-1-dmalcolm@redhat.com \
    --to=dmalcolm@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).