View Issue Details

IDProjectCategoryView StatusLast Update
0000652Ecere SDKcompilerpublic2014-07-11 18:35
Reporterjerome Assigned To 
PriorityhighSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Target Version0.46 eC II 
Summary0000652: Compiler generating bad code for Map iterator
DescriptionThe __internalIterator is not redefined a second time as it should
(It is first defined within a compound expression which is not visible at the second place it is used)

   ..\libec\obj\bootstrap.win32\ast.c:1492: error: '__internalIterator' undeclared (first use in this function)
   ..\libec\obj\bootstrap.win32\ast.c:1492: error: (Each undeclared identifier is reported only once
   ..\libec\obj\bootstrap.win32\ast.c:1492: error: for each function it appears in.)
Steps To ReproduceMap<ContextStringPair, List<Location>> intlStrings { };


      MapIterator<ContextStringPair, List<Location>> it { map = intlStrings };
      ContextStringPair pair {string, context};
      List<Location> list = intlStrings[pair];
      if(!list)
         list = intlStrings[pair] = { };
TagsNo tags attached.

Activities

jerome

2011-10-12 19:05

administrator   ~0000469

Last edited: 2011-10-12 19:06

import "ecere"

Map<String, int> map { };

void TestFunction()
{
   String s = "hello";
   int i;
   i = map[s];
   i = map[s] = 5;
}

The last '= 5' part is causing it.

Issue History

Date Modified Username Field Change
2011-10-12 18:56 jerome New Issue
2011-10-12 19:05 jerome Note Added: 0000469
2011-10-12 19:06 jerome Note Edited: 0000469
2012-03-08 15:59 redj Target Version old 0.44 => 0.45 Ginkakuji
2012-03-29 07:50 redj Category => eC Compiling Tools
2012-03-29 07:50 redj Project @2@ => Ecere SDK
2014-07-11 18:35 jerome Target Version 0.45 Ginkakuji => 0.46 eC II