Skip to content

tao_idl fails to compile const double variable assignments with math #1713

Description

@eliotlyon

Version

ACE+TAO 6.5.15 & 7.0.4

Host machine and operating system

Red Hat Enterprise Linux 8.4

Compiler name and version (including patch level)

gcc 8.4.1 20200928 (Red Hat 8.4.1-1)

The $ACE_ROOT/ace/config.h file

config-linux.h

The $ACE_ROOT/include/makeinclude/platform_macros.GNU file

platform_linux.GNU

Contents of $ACE_ROOT/bin/MakeProjectCreator/config/default.features

(doesn't exist. I used release tarballs downloaded from this github)

AREA/CLASS/EXAMPLE AFFECTED:

tao_idl

Synopsis

6.5.15's and 7.0.4's tao_idl do not compile IDL that 6.5.9's tao_idl accepted

Description

I compiled ACE+TAO 7.0.4, installed it to /tmp/ACE-7.0.4, and set up paths appropriately. Then I ran commands as below:

user@box /tmp/test $ cat minimal.idl
module Minimal
{
    const double a = 6.0;
    const double b = 3.0;
    const double div = a / b;
    const double mul = a * b;
    const double add = a + b;
    const double sub = a - b;
};
user@box /tmp/test $ tao_idl minimal.idl
Error - /tmp/ACE-7.0.4/bin/tao_idl: "minimal.idl", line 5: coercion failure (Can not dump this type) to double
Error - /tmp/ACE-7.0.4/bin/tao_idl: "minimal.idl", line 6: coercion failure (Can not dump this type) to double
Error - /tmp/ACE-7.0.4/bin/tao_idl: "minimal.idl", line 7: coercion failure (Can not dump this type) to double
Error - /tmp/ACE-7.0.4/bin/tao_idl: "minimal.idl", line 8: coercion failure (Can not dump this type) to double
tao_idl: minimal.idl: found 4 errors

Commenting out lines 5-8 causes the compilation to succeed.

I compiled ACE 6.5.15 and its tao_idl behaves the same way.

The ACE+TAO 6.5.9 tao_idl accepts this IDL file and generates reasonable code.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions