Skip to content
Snippets Groups Projects
  • Anna Zaks's avatar
    ec216ad1
    [static analyzer] Analyzer is skipping forward declared C/C++ functions · ec216ad1
    Anna Zaks authored
    A patch by Karthik Bhat!
    
    This patch fixes a regression introduced by r224398. Prior to r224398
    we were able to analyze the following code in test-include.c and report
    a null deref in this case. But post r224398 this analysis is being skipped.
    
    E.g.
      // test-include.c
      #include "test-include.h"
      void test(int * data) {
        data = 0;
        *data = 1;
      }
    
       // test-include.h
      void test(int * data);
    
    This patch uses the function body (instead of its declaration) as the location
    of the function when deciding if the Decl should be analyzed with path-sensitive
    analysis. (Prior to r224398, the call graph was guaranteed to have a definition
    when available.)
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240800 91177308-0d34-0410-b5e6-96231b3b80d8
    ec216ad1
    History
    [static analyzer] Analyzer is skipping forward declared C/C++ functions
    Anna Zaks authored
    A patch by Karthik Bhat!
    
    This patch fixes a regression introduced by r224398. Prior to r224398
    we were able to analyze the following code in test-include.c and report
    a null deref in this case. But post r224398 this analysis is being skipped.
    
    E.g.
      // test-include.c
      #include "test-include.h"
      void test(int * data) {
        data = 0;
        *data = 1;
      }
    
       // test-include.h
      void test(int * data);
    
    This patch uses the function body (instead of its declaration) as the location
    of the function when deciding if the Decl should be analyzed with path-sensitive
    analysis. (Prior to r224398, the call graph was guaranteed to have a definition
    when available.)
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240800 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.