Skip to content

Commit 396794c

Browse files
authored
Merge pull request #3674 from tautschnig/c++-rvalue
C++ front-end: Distinguish references from rvalue references [blocks: #3659]
2 parents dbc301f + f9b9e05 commit 396794c

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

buildspec-windows.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,8 @@ phases:
4747
Remove-Item cbmc\byte_update5 -Force -Recurse
4848
Remove-Item cbmc\byte_update6 -Force -Recurse
4949
Remove-Item cbmc\byte_update7 -Force -Recurse
50-
Remove-Item cpp -Force -Recurse
51-
Remove-Item cbmc-cpp -Force -Recurse
50+
Remove-Item cpp\virtual1 -Force -Recurse
5251
Remove-Item goto-gcc -Force -Recurse
53-
Remove-Item systemc -Force -Recurse
5452
cd ..
5553
cd jbmc/regression
5654
Remove-Item jbmc\VarLengthArrayTrace1 -Force -Recurse

src/cpp/cpp_type2name.cpp

+12-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,18 @@ static void irep2name(const irept &irep, std::string &result)
3333
if(is_reference(static_cast<const typet&>(irep)))
3434
result+="reference";
3535

36-
if(irep.id()!="")
36+
if(is_rvalue_reference(static_cast<const typet &>(irep)))
37+
result += "rvalue_reference";
38+
39+
if(irep.id() == ID_frontend_pointer)
40+
{
41+
if(irep.get_bool(ID_C_reference))
42+
result += "reference";
43+
44+
if(irep.get_bool(ID_C_rvalue_reference))
45+
result += "rvalue_reference";
46+
}
47+
else if(!irep.id().empty())
3748
result+=do_prefix(irep.id_string());
3849

3950
if(irep.get_named_sub().empty() && irep.get_sub().empty())

0 commit comments

Comments
 (0)