dyung added a comment.

In D128830#3751368 <https://reviews.llvm.org/D128830#3751368>, @dyung wrote:

> We also saw this assert on our Windows build, and it also can be reproduced 
> in Linux:
>
>   $ cat test2.c
>   static char *getenv(char *) {}
>   void foo() { getenv(""); }
>   $ ~/src/upstream/879f5118fc74657e4a5c4eff6810098e1eed75ac-linux/bin/clang 
> -c -O3 test2.c                                  
>   test2.c:1:27: warning: omitting the parameter name in a function definition 
> is a C2x extension [-Wc2x-extensions]                                         
>                                                                               
>             
>   static char *getenv(char *) {}                                              
>                                                                               
>                                                                               
>             
>                             ^                                                 
>                                                                               
>                                                                               
>             
>   test2.c:1:30: warning: non-void function does not return a value 
> [-Wreturn-type]                                                               
>                                                                               
>                        
>   static char *getenv(char *) {}                                              
>                                                                               
>                                                                               
>             
>                                ^                                              
>                                               
>   clang: 
> /home/dyung/src/upstream/llvm_clean_git/llvm/lib/Analysis/CGSCCPassManager.cpp:958:
>  updateCGAndAnalysisManagerForPass(llvm::LazyCallGraph&, 
> llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&, 
> llvm::CGSCCAnalysisManager&, llvm::CGSCCUpdateResult&, 
> llvm::FunctionAnalysisManager&, bool)::<lambda(llvm::Function&)>: Assertion 
> `RefereeN && "Visited function should already have an associated node"' 
> failed.
>
> The key seems to be the special function getenv(). If I rename the function, 
> the crash does not occur.

Note that our internal builder found this while trying to build 
compiler-rt/lib/profile/InstrProfilingFile.c using the newly built compiler. If 
you think this might take a while to debug, could you please revert the change 
while you investigate?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128830/new/

https://reviews.llvm.org/D128830

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to