<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic I have sorted out the problem in Analyzers</title>
    <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976012#M9700</link>
    <description>&lt;P&gt;I have sorted out the problem but I want to understand the cause. So, I will try and explain my code a bit and the "work-arounds" which resulted in the error-free version.&lt;/P&gt;

&lt;P&gt;I have a class (template) Class and have instantiated two Class's Class1 and Class2. Class 1 is say (long, double) and Class2 is say (int, double). There is also a template structure defined as&lt;/P&gt;

&lt;P&gt;template &amp;lt;class INT, class DOUBLE&amp;gt;&lt;/P&gt;

&lt;P&gt;struct something{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; INT &amp;gt; obj1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; INT obj2,obj3,obj4;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DOUBLE *obj5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DOUBLE obj6;&lt;/P&gt;

&lt;P&gt;//Some handles &amp;amp; struct specific functions&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;template &amp;lt;class INT, class DOUBLE&amp;gt;&lt;/P&gt;

&lt;P&gt;struct another_type{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; something&amp;lt;INT,DOUBLE&amp;gt;* &amp;gt; ptr1;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; something&amp;lt;INT,DOUBLE&amp;gt;* &amp;gt; ptr2;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; something&amp;lt;INT,DOUBLE&amp;gt;* &amp;gt; ptr3;&lt;/P&gt;

&lt;P&gt;//Some handles &amp;amp; struct specific functions&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;Class1 looks something like this:&lt;/P&gt;

&lt;P&gt;Class1{&lt;/P&gt;

&lt;P&gt;std::vector&amp;lt;DOUBLE&amp;gt; Somedata;&lt;/P&gt;

&lt;P&gt;std::vector&amp;lt;something&amp;lt;INT,DOUBLE&amp;gt;&amp;gt; Something1;&lt;/P&gt;

&lt;P&gt;//Handles&lt;/P&gt;

&lt;P&gt;Convert_to_Class2();&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;Class2 looks something like this:&lt;/P&gt;

&lt;P&gt;Class2{&lt;/P&gt;

&lt;P&gt;std::vector&amp;lt;DOUBLE&amp;gt; Somedata;&lt;/P&gt;

&lt;P&gt;std::map &amp;lt; INT, another_type &amp;lt; INT, DOUBLE &amp;gt; &amp;gt; Another_Type;&lt;/P&gt;

&lt;P&gt;std::deque &amp;lt;something&amp;lt;INT,DOUBLE&amp;gt;&amp;gt; Something2;&lt;/P&gt;

&lt;P&gt;friend class1;&lt;/P&gt;

&lt;P&gt;//Handles&lt;/P&gt;

&lt;P&gt;PushToDeque(something&amp;lt;INT,DOUBLE&amp;gt;);&lt;/P&gt;

&lt;P&gt;DoSomethingWithData();&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;Now Class1::Convert_to_Class2() copies an element of Something1 from (long, double) to (int,double) and passes it to Class2::PushToDeque function.&lt;/P&gt;

&lt;P&gt;Then class1 calls Class2::DoSomethingWithData(). This function looks like the following:&lt;/P&gt;

&lt;P&gt;void DoSomethingWithData(){&lt;/P&gt;

&lt;P&gt;std::map &amp;lt;INT ,DOUBLE *&amp;gt; mymap;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT j = 0; j &amp;lt; ptr1.size (); j++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT i = 0; i &amp;lt; ptr1&lt;J&gt;-&amp;gt;obj1.size (); i++){&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(mymap.count(ptr1&lt;J&gt;-&amp;gt;obj1&lt;I&gt;)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mymap[ptr1&lt;J&gt;-&amp;gt;obj1&lt;I&gt;] = ptr1&lt;J&gt;-&amp;gt;obj5 + ptr1&lt;J&gt;-&amp;gt;obj1&lt;I&gt;;}&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT i = 0; i &amp;lt; ptr2&lt;J&gt;-&amp;gt;obj1.size (); i++){&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(mymap.count(ptr2&lt;J&gt;-&amp;gt;obj1&lt;I&gt;)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mymap[ptr2&lt;J&gt;-&amp;gt;obj1&lt;I&gt;] = ptr2&lt;J&gt;-&amp;gt;obj5 + ptr2&lt;J&gt;-&amp;gt;obj1&lt;I&gt;;}&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT i = 0; i &amp;lt; ptr3&lt;J&gt;-&amp;gt;obj1.size (); i++){&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(mymap.count(ptr3&lt;J&gt;-&amp;gt;obj1&lt;I&gt;)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mymap[ptr3&lt;J&gt;-&amp;gt;obj1&lt;I&gt;] = ptr3&lt;J&gt;-&amp;gt;obj5 + ptr3&lt;J&gt;-&amp;gt;obj1&lt;I&gt;;}&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;}&lt;/P&gt;

&lt;P&gt;When I push a pointer to mymap I get uninitialized memory error and the call stack looks something like this:&lt;/P&gt;

&lt;P&gt;construct - new_allocator.h:104&lt;BR /&gt;
	_M_create_node - stl_tree.h:369&lt;BR /&gt;
	_M_insert - stl_tree.h:819&lt;BR /&gt;
	insert_unique - stl_tree.h:927&lt;BR /&gt;
	insert_unique - stl_tree.h:949&lt;BR /&gt;
	insert - stl_map.h:420&lt;BR /&gt;
	operator[] - stl_map.h:348&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If I disable mymap then the IXE error message disappears. Hope I conveyed the functioning of my code well. The question I have is why is mymap causing this error?&lt;/P&gt;</description>
    <pubDate>Mon, 10 Feb 2014 10:01:00 GMT</pubDate>
    <dc:creator>Anonymous30</dc:creator>
    <dc:date>2014-02-10T10:01:00Z</dc:date>
    <item>
      <title>Uninitialized memory access</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976004#M9692</link>
      <description>&lt;P&gt;Hi, I am getting an uninitialized memory access error when profiling a C++ code with Inspector XE 2013. I am using 64 bit version&amp;nbsp; composer_xe_2011_sp1.7.256 to compile the code. The code shows error in line 104 of new_allocator.h.&lt;/P&gt;

&lt;P&gt;Call stack for the error is&lt;/P&gt;

&lt;P&gt;construct - new_allocator.h:104&lt;BR /&gt;
	push_back - stl_deque.h:1041&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I am trying to push a struct into a std::deque object. The struct is defined as follows&lt;/P&gt;

&lt;P&gt;&amp;nbsp; struct something{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; int &amp;gt; obj1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; int obj2,obj3,obj4;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; double *obj5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; double obj6;&lt;/P&gt;

&lt;P&gt;//Some handles &amp;amp; struct specific functions&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;What is causing uninitialized memory access?&lt;/P&gt;</description>
      <pubDate>Tue, 04 Feb 2014 10:40:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976004#M9692</guid>
      <dc:creator>Anonymous30</dc:creator>
      <dc:date>2014-02-04T10:40:02Z</dc:date>
    </item>
    <item>
      <title>The top of the stack is</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976005#M9693</link>
      <description>&lt;P&gt;My guess is the top of the stack is actually in "something" (with no associated source, just disassembly?) (This is what results when I run a similar example where a member of the structure is not initialized.)&lt;/P&gt;

&lt;P&gt;This is the compiler-generated copy constructor. IXE indicates that some member of the object pushed onto the deque is not initialized.&lt;/P&gt;

&lt;P&gt;(Aside - you can see that it is the copy constructor by looking at the disassembly corresponding to the&amp;nbsp; "construct - new_allocator.h:104" frame&amp;nbsp; - the highlighted line is similar to "callq 0x8e &amp;lt; _ZN9somethingC1ERKS_ &amp;gt;".&amp;nbsp; Run the function name through 'c++filt', and it shows "something::something(something &amp;amp;const)".&lt;/P&gt;

&lt;P&gt;If you want to know which member of 'something' is considered uninitialized, you could look at the disassembly and find the offset into the structure. Or add a copy constructor to the struct, and it should resolve to source in the IXE call stack:&lt;/P&gt;

&lt;P&gt;[cpp]something(const something &amp;amp;o) {&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj1 = o.obj1;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj2 = o.obj2;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj3 = o.obj3;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj4 = o.obj4;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj5 = o.obj5;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj6 = o.obj6;&lt;/P&gt;

&lt;P&gt;}[/cpp]&lt;/P&gt;</description>
      <pubDate>Tue, 04 Feb 2014 18:43:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976005#M9693</guid>
      <dc:creator>Mark_D_Intel</dc:creator>
      <dc:date>2014-02-04T18:43:52Z</dc:date>
    </item>
    <item>
      <title>I checked the portion which</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976006#M9694</link>
      <description>&lt;P&gt;I checked the portion which shows uninitialized memory access and that is for the pointer obj5. However, the pointer copies the intended address correctly. I am confused as to why IXE shows this error.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Suman&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 06 Feb 2014 08:44:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976006#M9694</guid>
      <dc:creator>Anonymous30</dc:creator>
      <dc:date>2014-02-06T08:44:00Z</dc:date>
    </item>
    <item>
      <title>@suman</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976007#M9695</link>
      <description>&lt;P&gt;@suman&lt;/P&gt;

&lt;P&gt;Are you running Windows or Linux?&lt;/P&gt;</description>
      <pubDate>Fri, 07 Feb 2014 15:23:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976007#M9695</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-02-07T15:23:03Z</dc:date>
    </item>
    <item>
      <title>@suman</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976008#M9696</link>
      <description>&lt;P&gt;@suman&lt;/P&gt;

&lt;P&gt;You need to set element something::obj5 to NULL, since this element is a pointer. Other elements' address can be directly used (&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;pushed) into a std::deque object.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Feb 2014 06:01:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976008#M9696</guid>
      <dc:creator>Peter_W_Intel</dc:creator>
      <dc:date>2014-02-08T06:01:38Z</dc:date>
    </item>
    <item>
      <title>Did you check the validity of</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976009#M9697</link>
      <description>&lt;P&gt;Did you check the validity of the variable address being pointed by obj5?&lt;/P&gt;</description>
      <pubDate>Sat, 08 Feb 2014 18:53:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976009#M9697</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-02-08T18:53:59Z</dc:date>
    </item>
    <item>
      <title>How is obj5 initialized?</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976010#M9698</link>
      <description>&lt;P&gt;How is obj5 initialized? Taking the address of an existing variable, by dynamic memory allocation, or it is one element of a dynamically allocated array?&lt;/P&gt;

&lt;P&gt;What analysis type are you using? Detect Memory Problems (mi2 on command line) or Locate Memory Problems (mi3 on command line).&amp;nbsp; If the latter, is stack analysis on ("Analyze stack accesses" check box in the GUI - it's off by default, "-knob analyze-stack=true" on the command line) ? If stack analysis was not enabled, try the run again with it enabled.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;This structure also likely has a hole in it due to alignment considerations&amp;nbsp; - 64 bit pointers (obj5) are aligned on 8-byte boundaries.&amp;nbsp; So obj1 is 24 bytes (for the example I tried), obj2,3,4 take up 12 bytes total, then the compiler will leave a 4 byte 'hole' after obj4 so that obj5 is properly aligned.&amp;nbsp; Sometimes the structure is copied by memcpy (copy all the memory contained in the structure), rather than copying it member-by-member.&amp;nbsp; There are heuristics in IXE to detect this case and avoid reporting it, so it's probably not the issue here, but I'll raise it as a possibility.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2014 07:18:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976010#M9698</guid>
      <dc:creator>Mark_D_Intel</dc:creator>
      <dc:date>2014-02-10T07:18:25Z</dc:date>
    </item>
    <item>
      <title>Can you resolve the address</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976011#M9699</link>
      <description>&lt;P&gt;Can you resolve the address being pointed by obj5 pointer?&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2014 08:05:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976011#M9699</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2014-02-10T08:05:34Z</dc:date>
    </item>
    <item>
      <title>I have sorted out the problem</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976012#M9700</link>
      <description>&lt;P&gt;I have sorted out the problem but I want to understand the cause. So, I will try and explain my code a bit and the "work-arounds" which resulted in the error-free version.&lt;/P&gt;

&lt;P&gt;I have a class (template) Class and have instantiated two Class's Class1 and Class2. Class 1 is say (long, double) and Class2 is say (int, double). There is also a template structure defined as&lt;/P&gt;

&lt;P&gt;template &amp;lt;class INT, class DOUBLE&amp;gt;&lt;/P&gt;

&lt;P&gt;struct something{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; INT &amp;gt; obj1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; INT obj2,obj3,obj4;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DOUBLE *obj5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DOUBLE obj6;&lt;/P&gt;

&lt;P&gt;//Some handles &amp;amp; struct specific functions&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;template &amp;lt;class INT, class DOUBLE&amp;gt;&lt;/P&gt;

&lt;P&gt;struct another_type{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; something&amp;lt;INT,DOUBLE&amp;gt;* &amp;gt; ptr1;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; something&amp;lt;INT,DOUBLE&amp;gt;* &amp;gt; ptr2;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; std::vector &amp;lt; something&amp;lt;INT,DOUBLE&amp;gt;* &amp;gt; ptr3;&lt;/P&gt;

&lt;P&gt;//Some handles &amp;amp; struct specific functions&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;Class1 looks something like this:&lt;/P&gt;

&lt;P&gt;Class1{&lt;/P&gt;

&lt;P&gt;std::vector&amp;lt;DOUBLE&amp;gt; Somedata;&lt;/P&gt;

&lt;P&gt;std::vector&amp;lt;something&amp;lt;INT,DOUBLE&amp;gt;&amp;gt; Something1;&lt;/P&gt;

&lt;P&gt;//Handles&lt;/P&gt;

&lt;P&gt;Convert_to_Class2();&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;Class2 looks something like this:&lt;/P&gt;

&lt;P&gt;Class2{&lt;/P&gt;

&lt;P&gt;std::vector&amp;lt;DOUBLE&amp;gt; Somedata;&lt;/P&gt;

&lt;P&gt;std::map &amp;lt; INT, another_type &amp;lt; INT, DOUBLE &amp;gt; &amp;gt; Another_Type;&lt;/P&gt;

&lt;P&gt;std::deque &amp;lt;something&amp;lt;INT,DOUBLE&amp;gt;&amp;gt; Something2;&lt;/P&gt;

&lt;P&gt;friend class1;&lt;/P&gt;

&lt;P&gt;//Handles&lt;/P&gt;

&lt;P&gt;PushToDeque(something&amp;lt;INT,DOUBLE&amp;gt;);&lt;/P&gt;

&lt;P&gt;DoSomethingWithData();&lt;/P&gt;

&lt;P&gt;};&lt;/P&gt;

&lt;P&gt;Now Class1::Convert_to_Class2() copies an element of Something1 from (long, double) to (int,double) and passes it to Class2::PushToDeque function.&lt;/P&gt;

&lt;P&gt;Then class1 calls Class2::DoSomethingWithData(). This function looks like the following:&lt;/P&gt;

&lt;P&gt;void DoSomethingWithData(){&lt;/P&gt;

&lt;P&gt;std::map &amp;lt;INT ,DOUBLE *&amp;gt; mymap;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT j = 0; j &amp;lt; ptr1.size (); j++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT i = 0; i &amp;lt; ptr1&lt;J&gt;-&amp;gt;obj1.size (); i++){&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(mymap.count(ptr1&lt;J&gt;-&amp;gt;obj1&lt;I&gt;)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mymap[ptr1&lt;J&gt;-&amp;gt;obj1&lt;I&gt;] = ptr1&lt;J&gt;-&amp;gt;obj5 + ptr1&lt;J&gt;-&amp;gt;obj1&lt;I&gt;;}&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT i = 0; i &amp;lt; ptr2&lt;J&gt;-&amp;gt;obj1.size (); i++){&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(mymap.count(ptr2&lt;J&gt;-&amp;gt;obj1&lt;I&gt;)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mymap[ptr2&lt;J&gt;-&amp;gt;obj1&lt;I&gt;] = ptr2&lt;J&gt;-&amp;gt;obj5 + ptr2&lt;J&gt;-&amp;gt;obj1&lt;I&gt;;}&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (INT i = 0; i &amp;lt; ptr3&lt;J&gt;-&amp;gt;obj1.size (); i++){&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(mymap.count(ptr3&lt;J&gt;-&amp;gt;obj1&lt;I&gt;)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mymap[ptr3&lt;J&gt;-&amp;gt;obj1&lt;I&gt;] = ptr3&lt;J&gt;-&amp;gt;obj5 + ptr3&lt;J&gt;-&amp;gt;obj1&lt;I&gt;;}&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;}&lt;/P&gt;

&lt;P&gt;When I push a pointer to mymap I get uninitialized memory error and the call stack looks something like this:&lt;/P&gt;

&lt;P&gt;construct - new_allocator.h:104&lt;BR /&gt;
	_M_create_node - stl_tree.h:369&lt;BR /&gt;
	_M_insert - stl_tree.h:819&lt;BR /&gt;
	insert_unique - stl_tree.h:927&lt;BR /&gt;
	insert_unique - stl_tree.h:949&lt;BR /&gt;
	insert - stl_map.h:420&lt;BR /&gt;
	operator[] - stl_map.h:348&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If I disable mymap then the IXE error message disappears. Hope I conveyed the functioning of my code well. The question I have is why is mymap causing this error?&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2014 10:01:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976012#M9700</guid>
      <dc:creator>Anonymous30</dc:creator>
      <dc:date>2014-02-10T10:01:00Z</dc:date>
    </item>
    <item>
      <title>@iliyapolak Yeah, I could</title>
      <link>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976013#M9701</link>
      <description>&lt;P&gt;@iliyapolak Yeah, I could resolve the address issue&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2014 10:05:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Uninitialized-memory-access/m-p/976013#M9701</guid>
      <dc:creator>Anonymous30</dc:creator>
      <dc:date>2014-02-10T10:05:44Z</dc:date>
    </item>
  </channel>
</rss>

