View Issue Details

IDProjectCategoryView StatusLast Update
0000760Ecere SDKecpublic2013-08-07 03:33
Reporterredj Assigned Tojerome  
PriorityimmediateSeverityminorReproducibilitysometimes
Status closedResolutionfixed 
Product Version0.44 Ryoan-ji 
Target Version0.44.08Fixed in Version0.44.08 
Summary0000760: eC: indirection level confusion
Descriptionindirection level confusion
Steps To Reproduceclass SexCode : Sex
{
   // tocheck: why not compiling?
   // this compiles (with *&this); indirection level confusion...
   char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
   {
      char * out = this; // *&this;
      return out;
   }
};
TagsNo tags attached.

Activities

redj

2012-07-31 21:21

administrator   ~0000625

Last edited: 2012-07-31 21:22

is this related to [0000590]

redj

2012-08-12 05:48

administrator   ~0000632

Last edited: 2012-08-12 06:04

// depending if code is located in schema file or in another file;
CodedLocation t = *(CodedLocation *)this;
// vs
CodedLocation t = this;

(look for ISSUE_NO_760_INDIRECTION_LEVEL_CONFUSION in solutions source code)

note that in this case compilation will not halt but a crash will occur at runtime.

redj

2012-08-12 05:53

administrator   ~0000633

Jerome thinks it's because the DB Table classes are generated further on in the compiler passes...
So the compiler isn't aware yet of these classes being Id derivatives

jerome

2012-11-27 07:58

administrator   ~0000660

It would seem that this has been resolved.

Perhaps by
https://github.com/ecere/sdk/commit/bb1fdba96476884a6b931bc6bef3e7b909602288

At the very least, the workaround:
*(LocationAbbreviation *)this

Now crashes, whereas the original code works fine:
LocationAbbreviation t = this;

jerome

2013-03-06 11:35

administrator   ~0000672

Confirmed to be resolved by Redj.

Issue History

Date Modified Username Field Change
2012-07-31 21:21 redj New Issue
2012-07-31 21:21 redj Note Added: 0000625
2012-07-31 21:22 redj Note Edited: 0000625
2012-08-12 05:48 redj Note Added: 0000632
2012-08-12 05:53 redj Note Added: 0000633
2012-08-12 05:54 redj Note Edited: 0000632
2012-08-12 06:04 redj Note Edited: 0000632
2012-08-21 10:08 jerome Priority normal => immediate
2012-08-21 10:08 jerome Target Version => 0.44.1 Android
2012-11-27 07:58 jerome Note Added: 0000660
2012-11-27 07:58 jerome Status new => assigned
2012-11-27 07:58 jerome Assigned To => jerome
2012-11-27 07:58 jerome Status assigned => feedback
2013-03-06 11:35 jerome Status feedback => resolved
2013-03-06 11:35 jerome Fixed in Version => 0.44.1 64
2013-03-06 11:35 jerome Resolution open => fixed
2013-03-06 11:35 jerome Note Added: 0000672
2013-05-22 20:29 jerome Status resolved => closed
2013-08-07 03:33 jerome Fixed in Version 0.44.10 64 => 0.44.08
2013-08-07 03:33 jerome Target Version 0.44.10 64 => 0.44.08