As of r 152351, we have a proper way to turn off inlining: -analyzer-ipa=none.
Anna. On Mar 2, 2012, at 3:02 PM, Anna Zaks wrote: > As of r151930, you can use -analyzer-inline-stack-depth=0 or > -analyzer-inline-max-function-size=0 as a hack to disable it for testing > purposes. However, all the committed code should work with inlining turned on. > > I'll commit a proper solution soon. My understanding is that this is not > blocking anyone. > > Cheers, > Anna. > On Mar 2, 2012, at 2:20 PM, Tom Care wrote: > >> Perhaps for the moment we could have --analyzer-disable-inlining? >> >> Tom >> >> On 02/03/2012, at 6:33 PM, Anna Zaks wrote: >> >>> Jordy, >>> >>> Currently, there is none. This commit was primarily done so that we could >>> better test inlining asap. We are still deciding what command line options >>> should be provided to better regulate this. We are currently experimenting >>> with different ways of tuning inlining, which might have some influence on >>> the decision.. >>> >>> One possibility would be to have the following low level options: >>> >>> -analyzer-ipa=[none | inline | future_work_goes_here] >>> >>> Then, all the inlining specific options would be enabled only when inlining >>> is selected: >>> -analyzer-inline-stack-depth=# >>> -analyzer-inline-max-function-size=# >>> .. >>> >>> These could be further mapped to high level analyzes depth settings given >>> to the user (of scan-build): >>> -analyzes-depth=[fast | normal | deep] >>> >>> Suggestions are welcome, >>> Anna. >>> On Mar 2, 2012, at 1:22 AM, Jordy Rose wrote: >>> >>>> How do you turn /off/ inlining? Where does Opts.InlineCall get set to 0? >>>> >>>> Jordy >>>> >>>> >>>> On Mar 2, 2012, at 5:37, Anna Zaks wrote: >>>> >>>>> Author: zaks >>>>> Date: Thu Mar 1 16:37:46 2012 >>>>> New Revision: 151848 >>>>> >>>>> URL: http://llvm.org/viewvc/llvm-project?rev=151848&view=rev >>>>> Log: >>>>> [analyzer] Turn inlining on by default for better testing exposure. >>>>> >>>>> Fix a test, which was most likely an unintended recursive call. >>>>> >>>>> Modified: >>>>> cfe/trunk/include/clang/Frontend/AnalyzerOptions.h >>>>> cfe/trunk/lib/Driver/Tools.cpp >>>>> cfe/trunk/lib/Frontend/CompilerInvocation.cpp >>>>> cfe/trunk/test/Analysis/misc-ps-region-store.m >>>>> >>>>> Modified: cfe/trunk/include/clang/Frontend/AnalyzerOptions.h >>>>> URL: >>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/AnalyzerOptions.h?rev=151848&r1=151847&r2=151848&view=diff >>>>> ============================================================================== >>>>> --- cfe/trunk/include/clang/Frontend/AnalyzerOptions.h (original) >>>>> +++ cfe/trunk/include/clang/Frontend/AnalyzerOptions.h Thu Mar 1 >>>>> 16:37:46 2012 >>>>> @@ -100,7 +100,7 @@ >>>>> TrimGraph = 0; >>>>> VisualizeEGDot = 0; >>>>> VisualizeEGUbi = 0; >>>>> - InlineCall = 0; >>>>> + InlineCall = 1; >>>>> UnoptimizedCFG = 0; >>>>> CFGAddImplicitDtors = 0; >>>>> CFGAddInitializers = 0; >>>>> >>>>> Modified: cfe/trunk/lib/Driver/Tools.cpp >>>>> URL: >>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=151848&r1=151847&r2=151848&view=diff >>>>> ============================================================================== >>>>> --- cfe/trunk/lib/Driver/Tools.cpp (original) >>>>> +++ cfe/trunk/lib/Driver/Tools.cpp Thu Mar 1 16:37:46 2012 >>>>> @@ -1339,6 +1339,8 @@ >>>>> >>>>> CmdArgs.push_back("-analyzer-eagerly-assume"); >>>>> >>>>> + CmdArgs.push_back("-analyzer-inline-call"); >>>>> + >>>>> // Add default argument set. >>>>> if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { >>>>> CmdArgs.push_back("-analyzer-checker=core"); >>>>> >>>>> Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp >>>>> URL: >>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=151848&r1=151847&r2=151848&view=diff >>>>> ============================================================================== >>>>> --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original) >>>>> +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Thu Mar 1 16:37:46 2012 >>>>> @@ -1044,7 +1044,8 @@ >>>>> Opts.MaxNodes = Args.getLastArgIntValue(OPT_analyzer_max_nodes, >>>>> 150000,Diags); >>>>> Opts.MaxLoop = Args.getLastArgIntValue(OPT_analyzer_max_loop, 4, Diags); >>>>> Opts.EagerlyTrimEGraph = >>>>> !Args.hasArg(OPT_analyzer_no_eagerly_trim_egraph); >>>>> - Opts.InlineCall = Args.hasArg(OPT_analyzer_inline_call); >>>>> + if (Args.hasArg(OPT_analyzer_inline_call)) >>>>> + Opts.InlineCall = 1; >>>>> Opts.PrintStats = Args.hasArg(OPT_analyzer_stats); >>>>> >>>>> Opts.CheckersControlList.clear(); >>>>> >>>>> Modified: cfe/trunk/test/Analysis/misc-ps-region-store.m >>>>> URL: >>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps-region-store.m?rev=151848&r1=151847&r2=151848&view=diff >>>>> ============================================================================== >>>>> --- cfe/trunk/test/Analysis/misc-ps-region-store.m (original) >>>>> +++ cfe/trunk/test/Analysis/misc-ps-region-store.m Thu Mar 1 16:37:46 >>>>> 2012 >>>>> @@ -294,9 +294,11 @@ >>>>> struct ArrayWrapper { unsigned char y[16]; }; >>>>> struct WrappedStruct { unsigned z; }; >>>>> >>>>> +void test_handle_array_wrapper_helper(); >>>>> + >>>>> int test_handle_array_wrapper() { >>>>> struct ArrayWrapper x; >>>>> - test_handle_array_wrapper(&x); >>>>> + test_handle_array_wrapper_helper(&x); >>>>> struct WrappedStruct *p = (struct WrappedStruct*) x.y; // >>>>> expected-warning{{Casting a non-structure type to a structure type and >>>>> accessing a field can lead to memory access errors or data corruption.}} >>>>> return p->z; // no-warning >>>>> } >>>>> >>>>> >>>>> _______________________________________________ >>>>> cfe-commits mailing list >>>>> [email protected] >>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> [email protected] >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>> >> >> > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
