From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 0015A3857C55 for ; Wed, 23 Sep 2020 17:30:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0015A3857C55 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-395-hp3buJXYMWaRugAaeVWgIg-1; Wed, 23 Sep 2020 13:30:23 -0400 X-MC-Unique: hp3buJXYMWaRugAaeVWgIg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 813D6100945B for ; Wed, 23 Sep 2020 17:30:22 +0000 (UTC) Received: from t470.redhat.com (ovpn-112-230.phx2.redhat.com [10.3.112.230]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2BB865C22B; Wed, 23 Sep 2020 17:30:22 +0000 (UTC) From: David Malcolm 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 Message-Id: <20200923173020.2877-1-dmalcolm@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Sep 2020 17:30:32 -0000 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 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 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 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 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 &checkers, - logger *logger = NULL, - engine *eng = NULL) + engine *eng, + logger *logger = NULL) : m_checkers (checkers), m_logger (logger), m_engine (eng) { } -- 2.26.2