From 8c08946806cb31f5c41c9a042e706c29520eaa52 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Thu, 31 May 2018 09:31:35 +0100 Subject: [PATCH] decltype(bit field type) is the underlying subtype --- regression/cpp/Bit_fields1/test.desc | 2 +- src/cpp/cpp_typecheck_type.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/regression/cpp/Bit_fields1/test.desc b/regression/cpp/Bit_fields1/test.desc index 0daa9695017..3862862ffd3 100644 --- a/regression/cpp/Bit_fields1/test.desc +++ b/regression/cpp/Bit_fields1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +CORE main.cpp -std=c++11 ^EXIT=0$ diff --git a/src/cpp/cpp_typecheck_type.cpp b/src/cpp/cpp_typecheck_type.cpp index 1c2ba93ec14..2aafa642f02 100644 --- a/src/cpp/cpp_typecheck_type.cpp +++ b/src/cpp/cpp_typecheck_type.cpp @@ -227,7 +227,11 @@ void cpp_typecheckt::typecheck_type(typet &type) { exprt e=static_cast(type.find(ID_expr_arg)); typecheck_expr(e); - type=e.type(); + + if(e.type().id() == ID_c_bit_field) + type = e.type().subtype(); + else + type = e.type(); } else if(type.id()==ID_unassigned) {