Skip to content

tests fail on parsing noexcept and decltype in c++17 mode #6090

Closed
@vmihalko

Description

@vmihalko

CBMC version: 5.29
Operating system: Fedora 34
Exact command line resulting in the issue: ctest -L CORE
What behaviour did you expect: all tests pass
What happened instead:
Failed test: regression/cpp/virtual1/

/usr/include/assert.h:69:1: error: parse error before '( true ) __attribute__'
      __THROW __attribute__ ((__noreturn__));
/usr/include/stdio.h:146:1: error: parse error before '( true ) ;'
 extern int remove (const char *__filename) __THROW;
PARSING ERROR

Failed test: regression/cpp/Method_qualifier1

/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h:2434:1: error: parse error before '; } namespace std'
   typedef decltype(nullptr)        nullptr_t;
/usr/include/assert.h:69:1: error: parse error before '( true ) __attribute__'
      __THROW __attribute__ ((__noreturn__));
PARSING ERROR

The problem is with parsing the noexcept and decltype expressions.

The reason of this problem is GCC 11 uses c++17 by default. If I specify goto-cc -std=c++14/11/03, then the mentioned tests pass.

Metadata

Metadata

Assignees

No one assigned

    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