'C++ warning inlining failed in call xx, --param max-inline-insns-single limit reached
I am trying to use concurrent queue from : https://github.com/cameron314/concurrentqueue
I get multiple warnings like the one below at compile time:
concurrentqueue.h: In member function ‘virtual int MyCallbacks::Vbx(int*, void*, int*)’:
concurrentqueue.h:1378:21: warning: inlining failed in call to ‘bool moodycamel::ConcurrentQueue<T, Traits>::inner_enqueue(U&&) [with moodycamel::ConcurrentQueue<T, Traits>::AllocationMode canAlloc = moodycamel::ConcurrentQueue<Wrapper*, moodycamel::ConcurrentQueueDefaultTraits>::CanAlloc; U = Wrapper* const&; T = Wrapper*; Traits = moodycamel::ConcurrentQueueDefaultTraits]’: --param max-inline-insns-single limit reached [-Winline]
1378 | inline bool inner_enqueue(U&& element)
| ^~~~~~~~~~~~~
concurrentqueue.h:1003:52: note: called from here
1003 | else return inner_enqueue<CanAlloc>(item);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
concurrentqueue.h:1378:21: warning: inlining failed in call to ‘bool moodycamel::ConcurrentQueue<T, Traits>::inner_enqueue(U&&) [with moodycamel::ConcurrentQueue<T, Traits>::AllocationMode canAlloc = moodycamel::ConcurrentQueue<Wrapper*, moodycamel::ConcurrentQueueDefaultTraits>::CanAlloc; U = Wrapper* const&; T = Wrapper*; Traits = moodycamel::ConcurrentQueueDefaultTraits]’: --param max-inline-insns-single limit reached [-Winline]
1378 | inline bool inner_enqueue(U&& element)
| ^~~~~~~~~~~~~
concurrentqueue.h:1003:52: note: called from here
1003 | else return inner_enqueue<CanAlloc>(item);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
I tried to add -finline-limit= but it gives me strange results.
If value is 2000000 I get a lot less warnings if I use 3000000
I need it inlined. What is the correct way to fix it?
g++ v 11 on CentOS 9
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
