अपने आवेदन में मैं निम्नलिखित ऑब्जेक्टिव-सी कोड है:एलएलवीएम पाश अनुकूलन बग?
-(void)layoutPages
{
NSMutableArray* sections = [NSMutableArray array];
[sections addObject:[[NSAttributedString alloc] initWithString:@"Hello world"]];
for (NSAttributedString* contentSection in sections) {
NSLog(@"%@",contentSection);
}
}
कंसोल आउटपुट: 2014-04-22 14:11:01.505 MyApp[24784:830b] Hello world{}
अगर मैं -Os अनुकूलन का उपयोग कर x86_64 आर्किटेक्चर के लिए संकलन, LLVM तो चुपचाप बाहर का अनुकूलन लूप वैरिएबल 'कंटेंटसेक्शन'। जब मैं -O0 का उपयोग करता हूं, तो बग गायब हो जाता है।
(lldb) po contentSection
error: Couldn't materialize struct: the variable 'contentSection' has no location, it may have been optimized out
Errored out in Execute, couldn't PrepareToExecuteJITExpression
यह कैसे संभव है: यह आउटपुट जब मैं contentSection चर का वर्णन प्रिंट करने का प्रयास है? मेरे दृष्टिकोण से लूप के अंदर उपयोग किए जाने पर एक लूप वैरिएबल को अनुकूलित नहीं किया जाना चाहिए। मैंने देखा है कि अन्य लोगों के पास एलएलवीएम के साथ एक समान समस्या है लेकिन लूप वैरिएबल के साथ नहीं। क्या यह एक कंपाइलर बग हो सकता है?
क्या आपने एक ivar –
के बजाय एक संपत्ति self.contentSections का उपयोग करने का प्रयास किया था धन्यवाद @ पीटर Lapisu मैंने इसे एक ही परिणाम के साथ करने की कोशिश की। – Sbhklr
आपने 'iVar' या' @ property' कैसे घोषित किया है? जैसा भी हो रहा है, यह है कि 'vO' और '_contentSctions 'के साथ मेमोरी प्रबंधन हो रहा है और अधिक विचलित हो रहा है। – Rich