-
-
Couldn't load subscription status.
- Fork 5.7k
Closed
Labels
buildingBuild system, or building Julia or its dependenciesBuild system, or building Julia or its dependencies
Description
Since I upgraded to GCC 12, I'm getting some new warnings when compiling Julia.
/home/mose/repo/julia/src/init.c: In function 'jl_init_stack_limits':
/home/mose/repo/julia/src/init.c:75:19: warning: storing the address of local variable 'stacksize' in '*stack_hi' [-Wdangling-pointer=]
75 | *stack_hi = (void*)&stacksize;
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/mose/repo/julia/src/init.c:71:16: note: 'stacksize' declared here
71 | size_t stacksize;
| ^~~~~~~~~
/home/mose/repo/julia/src/init.c:71:16: note: 'stack_hi' declared here
/home/mose/repo/julia/src/init.c:105:15: warning: storing the address of local variable 'stacksize' in '*stack_lo' [-Wdangling-pointer=]
105 | *stack_lo = (void*)((char*)*stack_hi - stacksize);
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mose/repo/julia/src/init.c:103:12: note: 'stacksize' declared here
103 | size_t stacksize = rl.rlim_cur;
| ^~~~~~~~~
/home/mose/repo/julia/src/init.c:103:12: note: 'stack_lo' declared here
/home/mose/repo/julia/src/init.c: In function 'julia_init':
/home/mose/repo/julia/src/init.c:719:21: warning: using a dangling pointer to 'stacksize' [-Wdangling-pointer=]
719 | jl_task_t *ct = jl_init_root_task(ptls, stack_lo, stack_hi);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mose/repo/julia/src/init.c:103:12: note: 'stacksize' declared here
103 | size_t stacksize = rl.rlim_cur;
| ^~~~~~~~~
My understanding is that these dangling pointers are there pretty much on purpose. If that's the case, we should use either a pragma or a compiler flag to silence them.
/home/mose/repo/julia/src/gc.c: In function 'gc_mark_stack_resize':
/home/mose/repo/julia/src/gc.c:1722:89: warning: pointer 'old_data' may be used after 'realloc' [-Wuse-after-free]
1722 | sp->data = (jl_gc_mark_data_t *)(((char*)sp->data) + (((char*)gc_cache->data_stack) - ((char*)old_data)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /home/mose/repo/julia/src/support/libsupport.h:10,
from /home/mose/repo/julia/src/julia.h:14,
from /home/mose/repo/julia/src/gc.h:16,
from /home/mose/repo/julia/src/gc.c:3:
In function 'realloc_s',
inlined from 'gc_mark_stack_resize' at /home/mose/repo/julia/src/gc.c:1721:49:
/home/mose/repo/julia/src/support/dtypes.h:356:9: note: call to 'realloc' here
356 | p = realloc(p, sz == 0 ? 1 : sz);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mose/repo/julia/src/gc.c: In function 'gc_mark_stack_resize':
/home/mose/repo/julia/src/gc.c:1726:37: warning: pointer 'pc_stack' may be used after 'realloc' [-Wuse-after-free]
1726 | sp->pc = sp->pc_start + (sp->pc - pc_stack);
| ^
In function 'realloc_s',
inlined from 'gc_mark_stack_resize' at /home/mose/repo/julia/src/gc.c:1724:49:
/home/mose/repo/julia/src/support/dtypes.h:356:9: note: call to 'realloc' here
356 | p = realloc(p, sz == 0 ? 1 : sz);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
This sounds like something that should be fixed? (tentatively pinging @chflood since this is in the GC)
In file included from /home/mose/repo/julia/usr/include/llvm/Bitcode/BitcodeWriter.h:17,
from /home/mose/repo/julia/src/aotcompile.cpp:47:
/home/mose/repo/julia/usr/include/llvm/IR/ModuleSummaryIndex.h: In constructor 'llvm::ModuleSummaryIndex::ModuleSummaryIndex(bool, bool)':
/home/mose/repo/julia/usr/include/llvm/IR/ModuleSummaryIndex.h:1116:73: warning: member 'llvm::ModuleSummaryIndex::Alloc' is used uninitialized [-Wuninitialized]
1116 | : HaveGVs(HaveGVs), EnableSplitLTOUnit(EnableSplitLTOUnit), Saver(Alloc),
| ^~~~~
[...]
In file included from /home/mose/repo/julia/usr/include/llvm/Bitcode/BitcodeWriter.h:17,
from /home/mose/repo/julia/src/jitlayers.cpp:21:
/home/mose/repo/julia/usr/include/llvm/IR/ModuleSummaryIndex.h: In constructor 'llvm::ModuleSummaryIndex::ModuleSummaryIndex(bool, bool)':
/home/mose/repo/julia/usr/include/llvm/IR/ModuleSummaryIndex.h:1116:73: warning: member 'llvm::ModuleSummaryIndex::Alloc' is used uninitialized [-Wuninitialized]
1116 | : HaveGVs(HaveGVs), EnableSplitLTOUnit(EnableSplitLTOUnit), Saver(Alloc),
| ^~~~~
[...]
In file included from /home/mose/repo/julia/usr/include/llvm/CodeGen/MachineInstr.h:19,
from /home/mose/repo/julia/usr/include/llvm/CodeGen/MachineBasicBlock.h:20,
from /home/mose/repo/julia/usr/include/llvm/CodeGen/MachineFunction.h:28,
from /home/mose/repo/julia/usr/include/llvm/CodeGen/MachineFunctionPass.h:21,
from /home/mose/repo/julia/usr/include/llvm/CodeGen/AsmPrinter.h:22,
from /home/mose/repo/julia/src/disasm.cpp:104:
/home/mose/repo/julia/usr/include/llvm/ADT/PointerSumType.h: In static member function 'static llvm::DenseMapInfo<llvm::PointerSumType<TagT, MemberTs ...> >::SumType llvm::DenseMapInfo<llvm::PointerSumType<TagT, MemberTs ...> >::getEmptyKey()':
/home/mose/repo/julia/usr/include/llvm/ADT/PointerSumType.h:275:21: warning: expected 'template' keyword before dependent template name [-Wmissing-template-keyword]
275 | return SumType::create<SomeTag>(SomePointerInfo::getEmptyKey());
| ^~~~~~
/home/mose/repo/julia/usr/include/llvm/ADT/PointerSumType.h: In static member function 'static llvm::DenseMapInfo<llvm::PointerSumType<TagT, MemberTs ...> >::SumType llvm::DenseMapInfo<llvm::PointerSumType<TagT, MemberTs ...> >::getTombstoneKey()':
/home/mose/repo/julia/usr/include/llvm/ADT/PointerSumType.h:279:21: warning: expected 'template' keyword before dependent template name [-Wmissing-template-keyword]
279 | return SumType::create<SomeTag>(SomePointerInfo::getTombstoneKey());
| ^~~~~~
[...]
In file included from /home/mose/repo/julia/usr/include/llvm/Bitcode/BitcodeWriter.h:17,
from /home/mose/repo/julia/src/codegen.cpp:65:
/home/mose/repo/julia/usr/include/llvm/IR/ModuleSummaryIndex.h: In constructor 'llvm::ModuleSummaryIndex::ModuleSummaryIndex(bool, bool)':
/home/mose/repo/julia/usr/include/llvm/IR/ModuleSummaryIndex.h:1116:73: warning: member 'llvm::ModuleSummaryIndex::Alloc' is used uninitialized [-Wuninitialized]
1116 | : HaveGVs(HaveGVs), EnableSplitLTOUnit(EnableSplitLTOUnit), Saver(Alloc),
| ^~~~~
These are from LLVM, so probably little we can do about directly (Edit 1: first warnings fixed by llvm/llvm-project@8e066b8. Edit 2: more LLVM warnings fixed by llvm/llvm-project@1d9086b).
Metadata
Metadata
Assignees
Labels
buildingBuild system, or building Julia or its dependenciesBuild system, or building Julia or its dependencies