aganea added a comment.

Hello @gchatelet! This patches introduces a regression in a two-stage build 
using rpmalloc on Windows. Bisection lead me here. Would you have a chance to 
take a look please? Thanks in advance.

To reproduce, I used the following script (rename to make_llvm.bat) F25053901: 
make_llvm.txt <https://reviews.llvm.org/F25053901>

  C:\git\llvm-project>make_llvm.bat stage1
  ...
  C:\git\llvm-project>ninja clang lld -C stage1
  ...
  C:\git\llvm-project>make_llvm.bat stage2_rpmalloc
  ...
  C:\git\llvm-project>ninja lld -C stage2_rpmalloc

generates:

  [158/2714] Building C object 
lib\Support\CMakeFiles\LLVMSupport.dir\C_\git\rpmalloc\rpmalloc\rpmalloc.c.obj
  FAILED: 
lib/Support/CMakeFiles/LLVMSupport.dir/C_/git/rpmalloc/rpmalloc/rpmalloc.c.obj
  C:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -DENABLE_OVERRIDE 
-DENABLE_PRELOAD -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE 
-D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS 
-D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS 
-D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS 
-D__STDC_LIMIT_MACROS -IC:\git\llvm-project\stage2_rpmalloc\lib\Support 
-IC:\git\llvm-project\llvm\lib\Support 
-IC:\git\llvm-project\stage2_rpmalloc\include 
-IC:\git\llvm-project\llvm\include /GS- /D_ITERATOR_DEBUG_LEVEL=0 -Xclang -O3 
-fstrict-aliasing -march=native -flto=thin -fwhole-program-vtables -fuse-ld=lld 
/Zc:inline /Zi -gcodeview-ghash /Zc:strictStrings /Oi /W4  -Wextra 
-Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers 
-Wimplicit-fallthrough -Wcovered-switch-default -Wstring-conversion 
-Wmisleading-indentation /Gw -flto=thin /MT /O2 /Ob2 /DNDEBUG /showIncludes 
/Folib\Support\CMakeFiles\LLVMSupport.dir\C_\git\rpmalloc\rpmalloc\rpmalloc.c.obj
 /Fdlib\Support\CMakeFiles\LLVMSupport.dir\LLVMSupport.pdb -c -- 
C:\git\rpmalloc\rpmalloc\rpmalloc.c
  Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible 
type!", file C:/git/llvm-project/llvm/include\llvm/Support/Casting.h, line 578
  PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ 
and include the crash backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.      Program arguments: C:\\git\\llvm-project\\stage1\\bin\\clang-cl.exe 
/nologo -DENABLE_OVERRIDE -DENABLE_PRELOAD -DGTEST_HAS_RTTI=0 -DUNICODE 
-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS 
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 
-D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE 
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-IC:\\git\\llvm-project\\stage2_rpmalloc\\lib\\Support 
-IC:\\git\\llvm-project\\llvm\\lib\\Support 
-IC:\\git\\llvm-project\\stage2_rpmalloc\\include 
-IC:\\git\\llvm-project\\llvm\\include /GS- /D_ITERATOR_DEBUG_LEVEL=0 -Xclang 
-O3 -fstrict-aliasing -march=native -flto=thin -fwhole-program-vtables 
-fuse-ld=lld /Zc:inline /Zi -gcodeview-ghash /Zc:strictStrings /Oi /W4 -Wextra 
-Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers 
-Wimplicit-fallthrough -Wcovered-switch-default -Wstring-conversion 
-Wmisleading-indentation /Gw -flto=thin /MT /O2 /Ob2 /DNDEBUG /showIncludes 
/Folib\\Support\\CMakeFiles\\LLVMSupport.dir\\C_\\git\\rpmalloc\\rpmalloc\\rpmalloc.c.obj
 /Fdlib\\Support\\CMakeFiles\\LLVMSupport.dir\\LLVMSupport.pdb -c -- 
C:\\git\\rpmalloc\\rpmalloc\\rpmalloc.c
  1.      <eof> parser at end of file
  2.      Optimizer
   #0 0x00007ff7f877ca86 HandleAbort 
C:\git\llvm-project\llvm\lib\Support\Windows\Signals.inc:418:0
   #1 0x00007ff7fcdfc6bb raise 
C:\git\llvm-project\stage1\minkernel\crts\ucrt\src\appcrt\misc\signal.cpp:547:0
   #2 0x00007ff7fcdf1ff4 abort 
C:\git\llvm-project\stage1\minkernel\crts\ucrt\src\appcrt\startup\abort.cpp:71:0
   #3 0x00007ff7fcdf2672 common_assert_to_stderr<wchar_t> 
C:\git\llvm-project\stage1\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:186:0
   #4 0x00007ff7fcdf251a _wassert 
C:\git\llvm-project\stage1\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:443:0
   #5 0x00007ff7f9b48e7b 
llvm::VNCoercion::analyzeLoadFromClobberingMemInst(class llvm::Type *, class 
llvm::Value *, class llvm::MemIntrinsic *, class llvm::DataLayout const &) 
C:\git\llvm-project\llvm\lib\Transforms\Utils\VNCoercion.cpp:381:0
   #6 0x00007ff7f85a1ec4 llvm::GVNPass::AnalyzeLoadAvailability(class 
llvm::LoadInst *, class llvm::MemDepResult, class llvm::Value *, struct 
llvm::gvn::AvailableValue &) 
C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:1211:0
   #7 0x00007ff7f85a8a5c llvm::GVNPass::processLoad(class llvm::LoadInst *) 
C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:2068:0
   #8 0x00007ff7f85aa465 llvm::GVNPass::processInstruction(class 
llvm::Instruction *) 
C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:2483:0
   #9 0x00007ff7f85ab3ed llvm::GVNPass::processBlock(class llvm::BasicBlock *) 
C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:2682:0
  #10 0x00007ff7f85aadd0 llvm::GVNPass::iterateOnFunction(class llvm::Function 
&) C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:3027:0
  #11 0x00007ff7f85a099d llvm::GVNPass::runImpl(class llvm::Function &, class 
llvm::AssumptionCache &, class llvm::DominatorTree &, class 
llvm::TargetLibraryInfo const &, class llvm::AAResults &, class 
llvm::MemoryDependenceResults *, class llvm::LoopInfo *, class 
llvm::OptimizationRemarkEmitter *, class llvm::MemorySSA *) 
C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:2627:0
  #12 0x00007ff7f85a0595 llvm::GVNPass::run(class llvm::Function &, class 
llvm::AnalysisManager<class llvm::Function> &) 
C:\git\llvm-project\llvm\lib\Transforms\Scalar\GVN.cpp:732:0
  #13 0x00007ff7fb2f5771 llvm::detail::PassModel<class llvm::Function, class 
llvm::GVNPass, class llvm::PreservedAnalyses, class llvm::AnalysisManager<class 
llvm::Function>>::run(class llvm::Function &, class llvm::AnalysisManager<class 
llvm::Function> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #14 0x00007ff7f8eba44f llvm::PassManager<class llvm::Function, class 
llvm::AnalysisManager<class llvm::Function>>::run(class llvm::Function &, class 
llvm::AnalysisManager<class llvm::Function> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManager.h:522:0
  #15 0x00007ff7f7faed21 llvm::detail::PassModel<class llvm::Function, class 
llvm::PassManager<class llvm::Function, class llvm::AnalysisManager<class 
llvm::Function>>, class llvm::PreservedAnalyses, class 
llvm::AnalysisManager<class llvm::Function>>::run(class llvm::Function &, class 
llvm::AnalysisManager<class llvm::Function> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #16 0x00007ff7f8ec1d7e llvm::CGSCCToFunctionPassAdaptor::run(class 
llvm::LazyCallGraph::SCC &, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &> &, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &) 
C:\git\llvm-project\llvm\lib\Analysis\CGSCCPassManager.cpp:554:0
  #17 0x00007ff7f7fb094d llvm::detail::PassModel<class 
llvm::LazyCallGraph::SCC, class llvm::CGSCCToFunctionPassAdaptor, class 
llvm::PreservedAnalyses, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &>, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &>::run(class 
llvm::LazyCallGraph::SCC &, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &> &, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #18 0x00007ff7f8ebc8c1 llvm::PassManager<class llvm::LazyCallGraph::SCC, 
class llvm::AnalysisManager<class llvm::LazyCallGraph::SCC, class 
llvm::LazyCallGraph &>, class llvm::LazyCallGraph &, struct 
llvm::CGSCCUpdateResult &>::run(class llvm::LazyCallGraph::SCC &, class 
llvm::AnalysisManager<class llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph 
&> &, class llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &) 
C:\git\llvm-project\llvm\lib\Analysis\CGSCCPassManager.cpp:90:0
  #19 0x00007ff7f989597d llvm::detail::PassModel<class 
llvm::LazyCallGraph::SCC, class llvm::PassManager<class 
llvm::LazyCallGraph::SCC, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &>, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &>, class 
llvm::PreservedAnalyses, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &>, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &>::run(class 
llvm::LazyCallGraph::SCC &, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &> &, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #20 0x00007ff7f8ebffe1 llvm::DevirtSCCRepeatedPass::run(class 
llvm::LazyCallGraph::SCC &, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &> &, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &) 
C:\git\llvm-project\llvm\lib\Analysis\CGSCCPassManager.cpp:417:0
  #21 0x00007ff7f9895e4d llvm::detail::PassModel<class 
llvm::LazyCallGraph::SCC, class llvm::DevirtSCCRepeatedPass, class 
llvm::PreservedAnalyses, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &>, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &>::run(class 
llvm::LazyCallGraph::SCC &, class llvm::AnalysisManager<class 
llvm::LazyCallGraph::SCC, class llvm::LazyCallGraph &> &, class 
llvm::LazyCallGraph &, struct llvm::CGSCCUpdateResult &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #22 0x00007ff7f8ebeeb0 llvm::ModuleToPostOrderCGSCCPassAdaptor::run(class 
llvm::Module &, class llvm::AnalysisManager<class llvm::Module> &) 
C:\git\llvm-project\llvm\lib\Analysis\CGSCCPassManager.cpp:283:0
  #23 0x00007ff7f9895b91 llvm::detail::PassModel<class llvm::Module, class 
llvm::ModuleToPostOrderCGSCCPassAdaptor, class llvm::PreservedAnalyses, class 
llvm::AnalysisManager<class llvm::Module>>::run(class llvm::Module &, class 
llvm::AnalysisManager<class llvm::Module> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #24 0x00007ff7f8eb9744 llvm::PassManager<class llvm::Module, class 
llvm::AnalysisManager<class llvm::Module>>::run(class llvm::Module &, class 
llvm::AnalysisManager<class llvm::Module> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManager.h:522:0
  #25 0x00007ff7f989504c llvm::ModuleInlinerWrapperPass::run(class llvm::Module 
&, class llvm::AnalysisManager<class llvm::Module> &) 
C:\git\llvm-project\llvm\lib\Transforms\IPO\Inliner.cpp:1150:0
  #26 0x00007ff7fb2f6621 llvm::detail::PassModel<class llvm::Module, class 
llvm::ModuleInlinerWrapperPass, class llvm::PreservedAnalyses, class 
llvm::AnalysisManager<class llvm::Module>>::run(class llvm::Module &, class 
llvm::AnalysisManager<class llvm::Module> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManagerInternal.h:88:0
  #27 0x00007ff7f8eb9744 llvm::PassManager<class llvm::Module, class 
llvm::AnalysisManager<class llvm::Module>>::run(class llvm::Module &, class 
llvm::AnalysisManager<class llvm::Module> &) 
C:\git\llvm-project\llvm\include\llvm\IR\PassManager.h:522:0
  #28 0x00007ff7f9cd6282 `anonymous 
namespace'::EmitAssemblyHelper::RunOptimizationPipeline 
C:\git\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:965:0
  #29 0x00007ff7f9cce34e clang::EmitBackendOutput(class 
clang::DiagnosticsEngine &, class clang::HeaderSearchOptions const &, class 
clang::CodeGenOptions const &, class clang::TargetOptions const &, class 
clang::LangOptions const &, class llvm::StringRef, class llvm::Module *, enum 
clang::BackendAction, class std::unique_ptr<class llvm::raw_pwrite_stream, 
struct std::default_delete<class llvm::raw_pwrite_stream>>) 
C:\git\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1181:0
  #30 0x00007ff7fa0b26ae clang::BackendConsumer::HandleTranslationUnit(class 
clang::ASTContext &) 
C:\git\llvm-project\clang\lib\CodeGen\CodeGenAction.cpp:379:0
  #31 0x00007ff7fbaf08e4 clang::ParseAST(class clang::Sema &, bool, bool) 
C:\git\llvm-project\clang\lib\Parse\ParseAST.cpp:182:0
  #32 0x00007ff7fa017775 clang::FrontendAction::Execute(void) 
C:\git\llvm-project\clang\lib\Frontend\FrontendAction.cpp:1032:0
  #33 0x00007ff7f88eca63 clang::CompilerInstance::ExecuteAction(class 
clang::FrontendAction &) 
C:\git\llvm-project\clang\lib\Frontend\CompilerInstance.cpp:1033:0
  #34 0x00007ff7f8989667 clang::ExecuteCompilerInvocation(class 
clang::CompilerInstance *) 
C:\git\llvm-project\clang\lib\FrontendTool\ExecuteCompilerInvocation.cpp:266:0
  #35 0x00007ff7f7f184c9 cc1_main(class llvm::ArrayRef<char const *>, char 
const *, void *) C:\git\llvm-project\clang\tools\driver\cc1_main.cpp:248:0
  #36 0x00007ff7f7f14fc3 ExecuteCC1Tool 
C:\git\llvm-project\clang\tools\driver\driver.cpp:317:0
  #37 0x00007ff7f9dd7236 llvm::function_ref<void ()>::callback_fn<`lambda at 
C:/git/llvm-project/clang/lib/Driver/Job.cpp:407:22'> 
C:\git\llvm-project\llvm\include\llvm\ADT\STLFunctionalExtras.h:45:0
  #38 0x00007ff7f873317e llvm::CrashRecoveryContext::RunSafely(class 
llvm::function_ref<(void)>) 
C:\git\llvm-project\llvm\lib\Support\CrashRecoveryContext.cpp:234:0
  #39 0x00007ff7f9dd6eed clang::driver::CC1Command::Execute(class 
llvm::ArrayRef<class llvm::Optional<class llvm::StringRef>>, class 
std::basic_string<char, struct std::char_traits<char>, class 
std::allocator<char>> *, bool *) const 
C:\git\llvm-project\clang\lib\Driver\Job.cpp:407:0
  #40 0x00007ff7f88a9d3a clang::driver::Compilation::ExecuteCommand(class 
clang::driver::Command const &, class clang::driver::Command const *&) const 
C:\git\llvm-project\clang\lib\Driver\Compilation.cpp:196:0
  #41 0x00007ff7f88aa20a clang::driver::Compilation::ExecuteJobs(class 
clang::driver::JobList const &, class llvm::SmallVectorImpl<struct 
std::pair<int, class clang::driver::Command const *>> &) const 
C:\git\llvm-project\clang\lib\Driver\Compilation.cpp:249:0
  #42 0x00007ff7f88c3107 clang::driver::Driver::ExecuteCompilation(class 
clang::driver::Compilation &, class llvm::SmallVectorImpl<struct std::pair<int, 
class clang::driver::Command const *>> &) 
C:\git\llvm-project\clang\lib\Driver\Driver.cpp:1709:0
  #43 0x00007ff7f7f148b1 clang_main(int, char **) 
C:\git\llvm-project\clang\tools\driver\driver.cpp:513:0
  #44 0x00007ff7fcdde008 __scrt_common_main_seh 
D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
  #45 0x00007ff8f4944ed0 (C:\Windows\System32\KERNEL32.DLL+0x14ed0)
  #46 0x00007ff8f529e40b (C:\Windows\SYSTEM32\ntdll.dll+0x7e40b)
  clang-cl: error: clang frontend command failed due to signal (use -v to see 
invocation)
  clang version 15.0.0 (https://github.com/llvm/llvm-project.git 
38637ee477541370a90b37f149069d8e5c0c2efd)
  Target: x86_64-pc-windows-msvc
  Thread model: posix
  InstalledDir: C:\git\llvm-project\stage1\bin
  clang-cl: note: diagnostic msg:
  ********************
  
  PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
  Preprocessed source(s) and associated run script(s) are located at:
  clang-cl: note: diagnostic msg: 
C:\Users\aganea\AppData\Local\Temp\2\rpmalloc-70541f.c
  clang-cl: note: diagnostic msg: 
C:\Users\aganea\AppData\Local\Temp\2\rpmalloc-70541f.sh
  clang-cl: note: diagnostic msg:
  
  ********************

The reproducer: F25054211: rpmalloc-70541f.zip 
<https://reviews.llvm.org/F25054211>

Using rpmalloc at this revision: 
https://github.com/mjansson/rpmalloc/commit/f56e2f6794eab5c280b089c90750c681679fde92


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126903

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

Reply via email to