Summary: clang has very complicated logic what to translate based on `project_root` and filename. Add tests for different situations in regard of symbolic links in path/project_root Reviewed By: jvillard Differential Revision: D4168551 fbshipit-source-id: 586b364master
parent
8d48c108ca
commit
4512fcd8ef
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2016 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
||||
// NOTE this header shouldn't be translated by infer - it's here to disallow
|
||||
// running binaries built with infer headers
|
||||
namespace infer_model {
|
||||
// code compiled with infer headers is not supposed to be executed
|
||||
struct AbortWhenRun {
|
||||
AbortWhenRun() { __infer_skip__(); }
|
||||
// will be skipped by analyzer
|
||||
void __infer_skip__() {
|
||||
fprintf(stderr,
|
||||
"!!! This program must not be run !!!\n"
|
||||
"This code was compiled to be analyzed by Infer.\n"
|
||||
"To run this program, recompile it without Infer.\n");
|
||||
std::abort();
|
||||
}
|
||||
};
|
||||
|
||||
static AbortWhenRun a{};
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
# Copyright (c) 2016 - present Facebook, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This source code is licensed under the BSD style license found in the
|
||||
# LICENSE file in the root directory of this source tree. An additional grant
|
||||
# of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
TESTS_DIR = ../..
|
||||
|
||||
# see explanations in cpp/errors/Makefile for the custom isystem
|
||||
CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c
|
||||
|
||||
ROOT = ../codetoanalyze/clang_translation/src
|
||||
SYM_ROOT = ../codetoanalyze/clang_translation/tsrc_symlink
|
||||
|
||||
SOURCES = \
|
||||
$(ROOT)/main.cpp \
|
||||
$(ROOT)/main_default_root.cpp \
|
||||
$(SYM_ROOT)/main_symlink.cpp \
|
||||
$(SYM_ROOT)/main_default_symlink.cpp \
|
||||
|
||||
include $(TESTS_DIR)/clang-frontend.make
|
||||
|
||||
INFER_OPTIONS = -a capture --frontend-tests --cxx --skip-translation-headers exclude_dir
|
||||
|
||||
compile:
|
||||
clang $(CLANG_OPTIONS) $(SOURCES)
|
||||
|
||||
capture:
|
||||
$(INFER_BIN) $(INFER_OPTIONS) --project-root $(ROOT) -- clang $(CLANG_OPTIONS) $(ROOT)/main.cpp
|
||||
$(INFER_BIN) $(INFER_OPTIONS) --project-root $(SYM_ROOT) -- clang $(CLANG_OPTIONS) $(SYM_ROOT)/main_symlink.cpp
|
||||
cd $(ROOT) && $(INFER_BIN) $(INFER_OPTIONS) -- clang $(CLANG_OPTIONS) main_default_root.cpp
|
||||
cd $(SYM_ROOT) && $(INFER_BIN) $(INFER_OPTIONS) -- clang $(CLANG_OPTIONS) main_default_symlink.cpp
|
||||
|
||||
# test_extra needs to be separate target. Otherwise commands from test
|
||||
# target in common Makefile won't run
|
||||
test: test_extra
|
||||
|
||||
# all dot files should be exactly the same - if they aren't there is something wrong
|
||||
test_extra:
|
||||
diff $(ROOT)/main.cpp.dot $(SYM_ROOT)/main_symlink.cpp.dot && \
|
||||
diff $(ROOT)/main.cpp.dot $(ROOT)/main_default_root.cpp.dot && \
|
||||
diff $(ROOT)/main.cpp.dot $(SYM_ROOT)/main_default_symlink.cpp.dot
|
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright (c) 2016 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
namespace external {
|
||||
int fun(int a) { return a; }
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright (c) 2016 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
namespace internal_exclude {
|
||||
int fun(int a) { return a; }
|
||||
}
|
@ -0,0 +1 @@
|
||||
../external_dir/
|
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2016 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "project_lib.h"
|
||||
#include "external/external_lib.h"
|
||||
#include "exclude_dir/lib.h"
|
||||
|
||||
int main() {
|
||||
internal::fun(1); // internal::fun definition should be translated
|
||||
internal_exclude::fun(1); // internal_exclude::fun shouldn't be translated
|
||||
external::fun(1); // external::fun definition shouldn't be translated
|
||||
std::shared_ptr<int> x; // shared_ptr::shared_ptr model should be translated
|
||||
std::string s("1234"); // string::string shouldn't be translated (there is no
|
||||
// model for it)
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
/* @generated */
|
||||
digraph iCFG {
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" [label="3: Return Stmt \n n$0=*&a:int [line 12]\n *&return:int =n$0 [line 12]\n " shape="box"]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" ;
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" [label="2: Exit internal::fun \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" [label="1: Start internal::fun\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" [label="3: Call _fun_std::__1::shared_ptr<int>_reset<int,_void> \n n$0=*&this:int ** [line 165]\n _=*n$0:int * [line 165]\n _fun_std::__1::shared_ptr<int>_reset<int,_void>(n$0:int **,null:int *) [line 165]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" [label="2: Exit std::__1::shared_ptr<int>_~shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" [label="1: Start std::__1::shared_ptr<int>_~shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 165]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:void ** [line 51]\n n$1=*&value:void * [line 51]\n *n$0:void *=n$1 [line 51]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" [label="2: Exit std::__1::shared_ptr<int>_model_set \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" [label="1: Start std::__1::shared_ptr<int>_model_set\nFormals: self:void ** value:void *\nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: Call _fun_internal::fun \n n$3=_fun_internal::fun(1:int ) [line 18]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_6" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: Call _fun_internal_exclude::fun \n n$2=_fun_internal_exclude::fun(1:int ) [line 19]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_5" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: Call _fun_external::fun \n n$1=_fun_external::fun(1:int ) [line 20]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n _fun_std::__1::shared_ptr<int>_shared_ptr(&x:int **) [line 21]\n n$0=*&x:int * [line 21]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: DeclStmt \n _fun_std::__1::basic_string<8d2d7b7b909d4c24>_basic_string(&s:class std::__1::basic_string<8d2d7b7b909d4c24> *,\"1234\":char *) [line 22]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: s:class std::__1::basic_string<8d2d7b7b909d4c24> x:int * \n DECLARE_LOCALS(&return,&s,&x); [line 17]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_7" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 223]\n n$1=*&p:int * [line 223]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,n$1:void *) [line 223]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" [label="2: Exit std::__1::shared_ptr<int>_reset<int,_void> \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" [label="1: Start std::__1::shared_ptr<int>_reset<int,_void>\nFormals: this:int ** p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 217]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" [label="4: Constructor Init \n n$1=*&this:int ** [line 85]\n _fun_std::__1::std__shared_ptr<int>_std__shared_ptr(n$1:int **) [line 84]\n n$2=*n$1:int * [line 84]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 85]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,null:void *) [line 85]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" [label="2: Exit std::__1::shared_ptr<int>_shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" [label="1: Start std::__1::shared_ptr<int>_shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 84]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" ;
|
||||
}
|
@ -0,0 +1 @@
|
||||
main.cpp
|
@ -0,0 +1,89 @@
|
||||
/* @generated */
|
||||
digraph iCFG {
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" [label="3: Return Stmt \n n$0=*&a:int [line 12]\n *&return:int =n$0 [line 12]\n " shape="box"]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" ;
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" [label="2: Exit internal::fun \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" [label="1: Start internal::fun\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" [label="3: Call _fun_std::__1::shared_ptr<int>_reset<int,_void> \n n$0=*&this:int ** [line 165]\n _=*n$0:int * [line 165]\n _fun_std::__1::shared_ptr<int>_reset<int,_void>(n$0:int **,null:int *) [line 165]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" [label="2: Exit std::__1::shared_ptr<int>_~shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" [label="1: Start std::__1::shared_ptr<int>_~shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 165]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:void ** [line 51]\n n$1=*&value:void * [line 51]\n *n$0:void *=n$1 [line 51]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" [label="2: Exit std::__1::shared_ptr<int>_model_set \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" [label="1: Start std::__1::shared_ptr<int>_model_set\nFormals: self:void ** value:void *\nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: Call _fun_internal::fun \n n$3=_fun_internal::fun(1:int ) [line 18]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_6" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: Call _fun_internal_exclude::fun \n n$2=_fun_internal_exclude::fun(1:int ) [line 19]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_5" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: Call _fun_external::fun \n n$1=_fun_external::fun(1:int ) [line 20]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n _fun_std::__1::shared_ptr<int>_shared_ptr(&x:int **) [line 21]\n n$0=*&x:int * [line 21]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: DeclStmt \n _fun_std::__1::basic_string<8d2d7b7b909d4c24>_basic_string(&s:class std::__1::basic_string<8d2d7b7b909d4c24> *,\"1234\":char *) [line 22]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: s:class std::__1::basic_string<8d2d7b7b909d4c24> x:int * \n DECLARE_LOCALS(&return,&s,&x); [line 17]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_7" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 223]\n n$1=*&p:int * [line 223]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,n$1:void *) [line 223]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" [label="2: Exit std::__1::shared_ptr<int>_reset<int,_void> \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" [label="1: Start std::__1::shared_ptr<int>_reset<int,_void>\nFormals: this:int ** p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 217]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" [label="4: Constructor Init \n n$1=*&this:int ** [line 85]\n _fun_std::__1::std__shared_ptr<int>_std__shared_ptr(n$1:int **) [line 84]\n n$2=*n$1:int * [line 84]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 85]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,null:void *) [line 85]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" [label="2: Exit std::__1::shared_ptr<int>_shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" [label="1: Start std::__1::shared_ptr<int>_shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 84]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" ;
|
||||
}
|
@ -0,0 +1 @@
|
||||
main.cpp
|
@ -0,0 +1,89 @@
|
||||
/* @generated */
|
||||
digraph iCFG {
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" [label="3: Return Stmt \n n$0=*&a:int [line 12]\n *&return:int =n$0 [line 12]\n " shape="box"]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" ;
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" [label="2: Exit internal::fun \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" [label="1: Start internal::fun\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" [label="3: Call _fun_std::__1::shared_ptr<int>_reset<int,_void> \n n$0=*&this:int ** [line 165]\n _=*n$0:int * [line 165]\n _fun_std::__1::shared_ptr<int>_reset<int,_void>(n$0:int **,null:int *) [line 165]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" [label="2: Exit std::__1::shared_ptr<int>_~shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" [label="1: Start std::__1::shared_ptr<int>_~shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 165]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:void ** [line 51]\n n$1=*&value:void * [line 51]\n *n$0:void *=n$1 [line 51]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" [label="2: Exit std::__1::shared_ptr<int>_model_set \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" [label="1: Start std::__1::shared_ptr<int>_model_set\nFormals: self:void ** value:void *\nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: Call _fun_internal::fun \n n$3=_fun_internal::fun(1:int ) [line 18]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_6" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: Call _fun_internal_exclude::fun \n n$2=_fun_internal_exclude::fun(1:int ) [line 19]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_5" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: Call _fun_external::fun \n n$1=_fun_external::fun(1:int ) [line 20]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n _fun_std::__1::shared_ptr<int>_shared_ptr(&x:int **) [line 21]\n n$0=*&x:int * [line 21]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: DeclStmt \n _fun_std::__1::basic_string<8d2d7b7b909d4c24>_basic_string(&s:class std::__1::basic_string<8d2d7b7b909d4c24> *,\"1234\":char *) [line 22]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: s:class std::__1::basic_string<8d2d7b7b909d4c24> x:int * \n DECLARE_LOCALS(&return,&s,&x); [line 17]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_7" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 223]\n n$1=*&p:int * [line 223]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,n$1:void *) [line 223]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" [label="2: Exit std::__1::shared_ptr<int>_reset<int,_void> \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" [label="1: Start std::__1::shared_ptr<int>_reset<int,_void>\nFormals: this:int ** p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 217]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" [label="4: Constructor Init \n n$1=*&this:int ** [line 85]\n _fun_std::__1::std__shared_ptr<int>_std__shared_ptr(n$1:int **) [line 84]\n n$2=*n$1:int * [line 84]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 85]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,null:void *) [line 85]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" [label="2: Exit std::__1::shared_ptr<int>_shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" [label="1: Start std::__1::shared_ptr<int>_shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 84]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" ;
|
||||
}
|
@ -0,0 +1 @@
|
||||
main.cpp
|
@ -0,0 +1,89 @@
|
||||
/* @generated */
|
||||
digraph iCFG {
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" [label="3: Return Stmt \n n$0=*&a:int [line 12]\n *&return:int =n$0 [line 12]\n " shape="box"]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" ;
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_2" [label="2: Exit internal::fun \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" [label="1: Start internal::fun\nFormals: a:int \nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_1" -> "internal::fun{d41d8cd98f00b204e9800998ecf8427e_ZN8internal3funEi}.85135ab105a259368b1d7ebf1f3d3ac2_3" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" [label="3: Call _fun_std::__1::shared_ptr<int>_reset<int,_void> \n n$0=*&this:int ** [line 165]\n _=*n$0:int * [line 165]\n _fun_std::__1::shared_ptr<int>_reset<int,_void>(n$0:int **,null:int *) [line 165]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" ;
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_2" [label="2: Exit std::__1::shared_ptr<int>_~shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" [label="1: Start std::__1::shared_ptr<int>_~shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 165]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_1" -> "std::__1::shared_ptr<int>_~shared_ptr(_ZNSt3__110shared_ptrIiED0Ev).388e7f06faa2f498fd08f3d3c50ca31a_3" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&self:void ** [line 51]\n n$1=*&value:void * [line 51]\n *n$0:void *=n$1 [line 51]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" ;
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_2" [label="2: Exit std::__1::shared_ptr<int>_model_set \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" [label="1: Start std::__1::shared_ptr<int>_model_set\nFormals: self:void ** value:void *\nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_1" -> "std::__1::shared_ptr<int>_model_set(_ZNSt3__110shared_ptrIiE9model_setEPPKvS3_).c02dbe299962364cf3c5255e9c8d287d_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: Call _fun_internal::fun \n n$3=_fun_internal::fun(1:int ) [line 18]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_6" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: Call _fun_internal_exclude::fun \n n$2=_fun_internal_exclude::fun(1:int ) [line 19]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_5" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: Call _fun_external::fun \n n$1=_fun_external::fun(1:int ) [line 20]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n _fun_std::__1::shared_ptr<int>_shared_ptr(&x:int **) [line 21]\n n$0=*&x:int * [line 21]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: DeclStmt \n _fun_std::__1::basic_string<8d2d7b7b909d4c24>_basic_string(&s:class std::__1::basic_string<8d2d7b7b909d4c24> *,\"1234\":char *) [line 22]\n " shape="box"]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
|
||||
"main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: s:class std::__1::basic_string<8d2d7b7b909d4c24> x:int * \n DECLARE_LOCALS(&return,&s,&x); [line 17]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_7" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 223]\n n$1=*&p:int * [line 223]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,n$1:void *) [line 223]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" ;
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_2" [label="2: Exit std::__1::shared_ptr<int>_reset<int,_void> \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" [label="1: Start std::__1::shared_ptr<int>_reset<int,_void>\nFormals: this:int ** p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 217]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_1" -> "std::__1::shared_ptr<int>_reset<int,_void>(_ZNSt3__110shared_ptrIiE5resetIivEEvPT_).29e462552cba695192437aa4bfbf146e_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" [label="4: Constructor Init \n n$1=*&this:int ** [line 85]\n _fun_std::__1::std__shared_ptr<int>_std__shared_ptr(n$1:int **) [line 84]\n n$2=*n$1:int * [line 84]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" [label="3: Call _fun_std::__1::shared_ptr<int>_model_set \n n$0=*&this:int ** [line 85]\n _fun_std::__1::shared_ptr<int>_model_set(n$0:void **,null:void *) [line 85]\n " shape="box"]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_3" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" ;
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_2" [label="2: Exit std::__1::shared_ptr<int>_shared_ptr \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" [label="1: Start std::__1::shared_ptr<int>_shared_ptr\nFormals: this:int **\nLocals: \n DECLARE_LOCALS(&return); [line 84]\n " color=yellow style=filled]
|
||||
|
||||
|
||||
"std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_1" -> "std::__1::shared_ptr<int>_shared_ptr{_ZNSt3__110shared_ptrIiEC1Ev}.2e163b5142d39d575d5eeb568316078d_4" ;
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright (c) 2016 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
namespace internal {
|
||||
int fun(int a) { return a; }
|
||||
|
||||
// function shouldn't be translated if it's not used in source file
|
||||
int unused(int a) { return a; }
|
||||
}
|
Loading…
Reference in new issue