UPPAALModelChecker / UPPAAL-Meta

This is the offcial meta repo for issue reporting, feature request and public roadmap for the development of UPPAAL.
http://www.uppaal.org
1 stars 0 forks source link

Passing a const double through a partial template causes an error #263

Open labr-cs-aau opened 7 months ago

labr-cs-aau commented 7 months ago

Whenever you try to pass a const double through a partial instantiation of a template, UPPAAL will complain about an incompatible argument. This behaviour does not happen with integers, where they get passed just fine.

Steps to reproduce the behavior:

  1. Add a double parameter to a template.
  2. Partially instantiate the template in your system definitions (PartTemplate(const double a) = Template(a))
  3. Complete the instantiation and add the process to your system (Process = PartTemplate(1); system Process;)
  4. Check syntax to see the error of incompatible argument.

Changing the double types to integer types will not error, and I would have expected that the doubles behaved in the same way. Interestingly enough, you can pass a reference to a double just fine, exactly how a reference to an integer is passed.

UPPAAL Version 5.0.0 (rev. 714BA9DB36F49691)

./verifyta --version output: UPPAAL 5.0.0 (rev. 714BA9DB36F49691), June 2023 Copyright (c) 2011 - 2023, Aalborg University. Copyright (c) 1995 - 2011, Uppsala University and Aalborg University. All rights reserved. Compiled using -DENABLE_TIGA -DMULTI_TERMINAL -DENABLE_TIGA_SMC -DENABLE_STORE_MINGRAPH -DTIGA_OTF_BUCHI -DENABLE_LSC Built with Boost-1.79.0, LibXml2-2.9.14, xxHash-0.8.1, UTAP-1.1.6, UUtils-1.2.0, UDBM-2.0.11, and UCDD-0.2.1

Fedora Linux 64-bit, Java 17