Skip to content

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

@eliotlyon

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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions