LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Map bug: IPE + for loop compiler error (LV2020)

Solved!
Go to solution

Hi all,

 

There appears to be a compiler bug when an IPE accessing a map is placed inside a for loop. Steps to reproduce the bug:

 

  1. Create a map constant.
  2. Create an IPE for map access, and wire the constant to the IPE border node.
  3. Wire any required inputs so the run arrow isn't broken.
  4. Create a for loop around the IPE structure, but not around the map constant. This will cause the map to auto index. The wire to the IPE becomes a cluster, but doesn't break.
  5. Run the VI. A compiler error appears: "copy cvt, csrc=0x50"

 

map_ipe_compiler_error.png

 

The snippet below can be dragged on to the BD and will also throw the compiler error.

map_ipe_compiler_error_snippet.png

 

Is this a known issue?

Message 1 of 8
(1,524 Views)
Solution
Accepted by topic author Dataflow_G

Thanks for reporting this behavior. I have reproduced the problem with your instructions, and opened Bug #1106870 for our team to review.

 

All the best,

Message 2 of 8
(1,441 Views)

@Dataflow_G wrote:

Hi all,

 

There appears to be a compiler bug when an IPE accessing a map is placed inside a for loop. Steps to reproduce the bug:

 

  1. Create a map constant.
  2. Create an IPE for map access, and wire the constant to the IPE border node.
  3. Wire any required inputs so the run arrow isn't broken.
  4. Create a for loop around the IPE structure, but not around the map constant. This will cause the map to auto index. The wire to the IPE becomes a cluster, but doesn't break.
  5. Run the VI. A compiler error appears: "copy cvt, csrc=0x50"

 

map_ipe_compiler_error.png

 

The snippet below can be dragged on to the BD and will also throw the compiler error.

map_ipe_compiler_error_snippet.png

 

Is this a known issue?


When you have a "MAP" input node into the for loop, the map is converted to a cluster array; that is, it is no longer a map. Reverse some of steps, for loop first, then IPE, get a broken wire. You need a shift register on the side of the for loop to access the map.

 

mcduff

0 Kudos
Message 3 of 8
(1,431 Views)

@mcduff wrote:


When you have a "MAP" input node into the for loop, the map is converted to a cluster array; that is, it is no longer a map. Reverse some of steps, for loop first, then IPE, get a broken wire. You need a shift register on the side of the for loop to access the map.

 

mcduff


I know I did things a little backwards, and was expecting the auto-index cluster behavior and broken wire after adding the for loop. So it was interesting the wire didn't actually break, and after running the VI to see what would happen produced the compiler error.

0 Kudos
Message 4 of 8
(1,410 Views)

So the bug here is the IPE map node even accepting a non-map datatype?

 

Just curious. Never used maps, but like to keep up to date.

0 Kudos
Message 5 of 8
(1,386 Views)

@Intaris wrote:

So the bug here is the IPE map node even accepting a non-map datatype?

 

Just curious. Never used maps, but like to keep up to date.


I agree with your assessment. I would classify it as an editor/IDE type bug. You should have a broken wire but the editor/compiler does not catch it. If you reverse some of the steps, the editor catches it.

 

mcduff

0 Kudos
Message 6 of 8
(1,370 Views)

Huh... If you wire the cluster directly, the IPE allows it...

Then create an output indicator...

Then Undo the Create Indicator (I used Ctrl+Z)...

And *then* it breaks. (Just selecting/deleting the indicator does not break the wire.)

Spoiler
map_and_cluster_error_JoB.PNG

It's probably all the same bug, but it's interesting to tinker and see what happens.

 


@mcduff wrote:

@Intaris wrote:

So the bug here is the IPE map node even accepting a non-map datatype?


I agree with your assessment. I would classify it as an editor/IDE type bug. You should have a broken wire but the editor/compiler does not catch it.


I agree, too: It seems to be something that the Editor should not allow. (Not that my agreement adds much at this point. 😄)

-joeorbob

Message 7 of 8
(1,351 Views)

Better late than never?

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
Message 8 of 8
(1,343 Views)