Skip to content

Commit 4e32058

Browse files
committed
C/C++ internal additions: consistently use #line
We sometimes used # 1 instead of #line 1, which GCC accepts, but Visual Studio might not actually do, or perhaps sometimes does. It certainly failed when used with the code in cprover_library.cpp.
1 parent f7958df commit 4e32058

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

src/ansi-c/ansi_c_internal_additions.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,42 @@ Author: Daniel Kroening, [email protected]
1616
#include <goto-programs/adjust_float_expressions.h>
1717

1818
const char gcc_builtin_headers_types[]=
19-
"# 1 \"gcc_builtin_headers_types.h\"\n"
19+
"#line 1 \"gcc_builtin_headers_types.h\"\n"
2020
#include "gcc_builtin_headers_types.inc"
2121
; // NOLINT(whitespace/semicolon)
2222

2323
const char gcc_builtin_headers_generic[]=
24-
"# 1 \"gcc_builtin_headers_generic.h\"\n"
24+
"#line 1 \"gcc_builtin_headers_generic.h\"\n"
2525
#include "gcc_builtin_headers_generic.inc"
2626
; // NOLINT(whitespace/semicolon)
2727

2828
const char gcc_builtin_headers_math[]=
29-
"# 1 \"gcc_builtin_headers_math.h\"\n"
29+
"#line 1 \"gcc_builtin_headers_math.h\"\n"
3030
#include "gcc_builtin_headers_math.inc"
3131
; // NOLINT(whitespace/semicolon)
3232

3333
const char gcc_builtin_headers_mem_string[]=
34-
"# 1 \"gcc_builtin_headers_mem_string.h\"\n"
34+
"#line 1 \"gcc_builtin_headers_mem_string.h\"\n"
3535
#include "gcc_builtin_headers_mem_string.inc"
3636
; // NOLINT(whitespace/semicolon)
3737

3838
const char gcc_builtin_headers_omp[]=
39-
"# 1 \"gcc_builtin_headers_omp.h\"\n"
39+
"#line 1 \"gcc_builtin_headers_omp.h\"\n"
4040
#include "gcc_builtin_headers_omp.inc"
4141
; // NOLINT(whitespace/semicolon)
4242

4343
const char gcc_builtin_headers_tm[]=
44-
"# 1 \"gcc_builtin_headers_tm.h\"\n"
44+
"#line 1 \"gcc_builtin_headers_tm.h\"\n"
4545
#include "gcc_builtin_headers_tm.inc"
4646
; // NOLINT(whitespace/semicolon)
4747

4848
const char gcc_builtin_headers_ubsan[]=
49-
"# 1 \"gcc_builtin_headers_ubsan.h\"\n"
49+
"#line 1 \"gcc_builtin_headers_ubsan.h\"\n"
5050
#include "gcc_builtin_headers_ubsan.inc"
5151
; // NOLINT(whitespace/semicolon)
5252

5353
const char gcc_builtin_headers_ia32[]=
54-
"# 1 \"gcc_builtin_headers_ia32.h\"\n"
54+
"#line 1 \"gcc_builtin_headers_ia32.h\"\n"
5555
#include "gcc_builtin_headers_ia32.inc"
5656
; // NOLINT(whitespace/semicolon)
5757
const char gcc_builtin_headers_ia32_2[]=
@@ -68,47 +68,47 @@ const char gcc_builtin_headers_ia32_5[] =
6868
; // NOLINT(whitespace/semicolon)
6969

7070
const char gcc_builtin_headers_alpha[]=
71-
"# 1 \"gcc_builtin_headers_alpha.h\"\n"
71+
"#line 1 \"gcc_builtin_headers_alpha.h\"\n"
7272
#include "gcc_builtin_headers_alpha.inc"
7373
; // NOLINT(whitespace/semicolon)
7474

7575
const char gcc_builtin_headers_arm[]=
76-
"# 1 \"gcc_builtin_headers_arm.h\"\n"
76+
"#line 1 \"gcc_builtin_headers_arm.h\"\n"
7777
#include "gcc_builtin_headers_arm.inc"
7878
; // NOLINT(whitespace/semicolon)
7979

8080
const char gcc_builtin_headers_mips[]=
81-
"# 1 \"gcc_builtin_headers_mips.h\"\n"
81+
"#line 1 \"gcc_builtin_headers_mips.h\"\n"
8282
#include "gcc_builtin_headers_mips.inc"
8383
; // NOLINT(whitespace/semicolon)
8484

8585
const char gcc_builtin_headers_power[]=
86-
"# 1 \"gcc_builtin_headers_power.h\"\n"
86+
"#line 1 \"gcc_builtin_headers_power.h\"\n"
8787
#include "gcc_builtin_headers_power.inc"
8888
; // NOLINT(whitespace/semicolon)
8989

9090
const char arm_builtin_headers[]=
91-
"# 1 \"arm_builtin_headers.h\"\n"
91+
"#line 1 \"arm_builtin_headers.h\"\n"
9292
#include "arm_builtin_headers.inc"
9393
; // NOLINT(whitespace/semicolon)
9494

9595
const char cw_builtin_headers[]=
96-
"# 1 \"cw_builtin_headers.h\"\n"
96+
"#line 1 \"cw_builtin_headers.h\"\n"
9797
#include "cw_builtin_headers.inc"
9898
; // NOLINT(whitespace/semicolon)
9999

100100
const char clang_builtin_headers[]=
101-
"# 1 \"clang_builtin_headers.h\"\n"
101+
"#line 1 \"clang_builtin_headers.h\"\n"
102102
#include "clang_builtin_headers.inc"
103103
; // NOLINT(whitespace/semicolon)
104104

105105
const char cprover_builtin_headers[]=
106-
"# 1 \"cprover_builtin_headers.h\"\n"
106+
"#line 1 \"cprover_builtin_headers.h\"\n"
107107
#include "cprover_builtin_headers.inc"
108108
; // NOLINT(whitespace/semicolon)
109109

110110
const char windows_builtin_headers[]=
111-
"# 1 \"windows_builtin_headers.h\"\n"
111+
"#line 1 \"windows_builtin_headers.h\"\n"
112112
#include "windows_builtin_headers.inc"
113113
; // NOLINT(whitespace/semicolon)
114114

@@ -158,7 +158,7 @@ void ansi_c_internal_additions(std::string &code)
158158
// clang-format off
159159
// do the built-in types and variables
160160
code+=
161-
"# 1 \"<built-in-additions>\"\n"
161+
"#line 1 \"<built-in-additions>\"\n"
162162
"typedef __typeof__(sizeof(int)) " CPROVER_PREFIX "size_t;\n"
163163
"typedef "+c_type_as_string(signed_size_type().get(ID_C_c_type))+
164164
" " CPROVER_PREFIX "ssize_t;\n"
@@ -312,7 +312,7 @@ void ansi_c_architecture_strings(std::string &code)
312312
// They allow identifying the architectural settings used
313313
// at compile time from a goto-binary.
314314

315-
code+="# 1 \"<builtin-architecture-strings>\"\n";
315+
code += "#line 1 \"<builtin-architecture-strings>\"\n";
316316

317317
code+=architecture_string(config.ansi_c.int_width, "int_width");
318318
code+=architecture_string(config.ansi_c.int_width, "word_size"); // old

src/cpp/cpp_internal_additions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ std::string c2cpp(const std::string &s)
4444

4545
void cpp_internal_additions(std::ostream &out)
4646
{
47-
out << "# 1 \"<built-in-additions>\"" << '\n';
47+
out << "#line 1 \"<built-in-additions>\"" << '\n';
4848

4949
// __CPROVER namespace
5050
out << "namespace __CPROVER { }" << '\n';

0 commit comments

Comments
 (0)