Skip to content

Commit 1230a7b

Browse files
committed
Sync from upstream.
2 parents f049b12 + aff38b5 commit 1230a7b

File tree

2 files changed

+63
-53
lines changed

2 files changed

+63
-53
lines changed

.github/workflows/ci.yml

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -21,57 +21,44 @@ jobs:
2121
cxxstd: "11,14,1z"
2222
os: ubuntu-latest
2323
container: ubuntu:18.04
24-
install: g++-5-multilib
25-
address-model: 32,64
24+
install: g++-5
2625
- toolset: gcc-6
2726
cxxstd: "11,14,1z"
2827
os: ubuntu-latest
2928
container: ubuntu:18.04
30-
install: g++-6-multilib
31-
address-model: 32,64
29+
install: g++-6
3230
- toolset: gcc-7
3331
cxxstd: "11,14"
3432
os: ubuntu-latest
3533
container: ubuntu:18.04
36-
install: g++-7-multilib
37-
address-model: 32,64
3834
- toolset: gcc-8
3935
cxxstd: "11,14,17,2a"
4036
os: ubuntu-20.04
41-
install: g++-8-multilib
42-
address-model: 32,64
37+
install: g++-8
4338
- toolset: gcc-9
4439
cxxstd: "11,14,17,2a"
4540
os: ubuntu-20.04
46-
install: g++-9-multilib
47-
address-model: 32,64
4841
- toolset: gcc-10
4942
cxxstd: "11,14,17,2a"
5043
os: ubuntu-20.04
51-
install: g++-10-multilib
52-
address-model: 32,64
44+
install: g++-10
5345
- toolset: gcc-11
5446
cxxstd: "11,14,17,20"
5547
os: ubuntu-22.04
56-
install: g++-11-multilib
57-
address-model: 32,64
5848
- toolset: gcc-12
5949
cxxstd: "11,14,17,20,2b"
6050
os: ubuntu-22.04
61-
install: g++-12-multilib
62-
address-model: 32,64
51+
install: g++-12
6352
- toolset: gcc-13
6453
cxxstd: "11,14,17,20,2b"
6554
os: ubuntu-latest
66-
container: ubuntu:23.04
67-
install: g++-13-multilib
68-
address-model: 32,64
55+
container: ubuntu:24.04
56+
install: g++-13
6957
- toolset: gcc-14
7058
cxxstd: "11,14,17,20,2b"
7159
os: ubuntu-latest
7260
container: ubuntu:24.04
73-
install: g++-14-multilib
74-
address-model: 32,64
61+
install: g++-14
7562
- toolset: clang
7663
compiler: clang++-3.9
7764
cxxstd: "11,14"
@@ -107,7 +94,7 @@ jobs:
10794
install: clang-8
10895
- toolset: clang
10996
compiler: clang++-9
110-
cxxstd: "11,14,17,2a"
97+
cxxstd: "11,14,17"
11198
os: ubuntu-20.04
11299
install: clang-9
113100
- toolset: clang
@@ -143,13 +130,13 @@ jobs:
143130
- toolset: clang
144131
compiler: clang++-16
145132
cxxstd: "11,14,17,20,2b"
146-
container: ubuntu:23.04
133+
container: ubuntu:24.04
147134
os: ubuntu-latest
148135
install: clang-16
149136
- toolset: clang
150137
compiler: clang++-17
151138
cxxstd: "11,14,17,20,2b"
152-
container: ubuntu:23.10
139+
container: ubuntu:24.04
153140
os: ubuntu-latest
154141
install: clang-17
155142
- toolset: clang
@@ -159,34 +146,48 @@ jobs:
159146
os: ubuntu-latest
160147
install: clang-18
161148
- toolset: clang
149+
compiler: clang++-19
162150
cxxstd: "11,14,17,20,2b"
163-
os: macos-12
151+
container: ubuntu:24.10
152+
os: ubuntu-latest
153+
install: clang-19
164154
- toolset: clang
165155
cxxstd: "11,14,17,20,2b"
166156
os: macos-13
167157
- toolset: clang
168158
cxxstd: "11,14,17,20,2b"
169159
os: macos-14
160+
- toolset: clang
161+
cxxstd: "11,14,17,20,2b"
162+
os: macos-15
170163

171164
runs-on: ${{matrix.os}}
172-
container: ${{matrix.container}}
165+
166+
container:
167+
image: ${{matrix.container}}
168+
volumes:
169+
- /node20217:/node20217:rw,rshared
170+
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
173171

174172
defaults:
175173
run:
176174
shell: bash
177175

178176
steps:
179-
- name: Enable Node 16
180-
run: |
181-
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
182-
183-
- uses: actions/checkout@v3
184-
185177
- name: Setup container environment
186178
if: matrix.container
187179
run: |
188180
apt-get update
189-
apt-get -y install sudo python3 git g++
181+
apt-get -y install sudo python3 git g++ curl xz-utils
182+
183+
- name: Install nodejs20glibc2.17
184+
if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
185+
run: |
186+
curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
187+
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
188+
ldd /__e/node20/bin/node
189+
190+
- uses: actions/checkout@v4
190191

191192
- name: Install packages
192193
if: matrix.install

include/boost/leaf/detail/demangle.hpp

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -147,26 +147,35 @@ namespace n
147147
#define BOOST_LEAF_P(P) (sizeof(char[1 + detail::check_prefix(BOOST_LEAF_PRETTY_FUNCTION, P)]) - 1)
148148
// clang style:
149149
int const p01 = BOOST_LEAF_P("r boost::leaf::n::p() [T = ");
150+
int const p02 = BOOST_LEAF_P("r __cdecl boost::leaf::n::p(void) [T = ");
151+
int const p03 = BOOST_LEAF_P("r __stdcall boost::leaf::n::p(void) [T = ");
152+
int const p04 = BOOST_LEAF_P("r __fastcall boost::leaf::n::p(void) [T = ");
150153
// old clang style:
151-
int const p02 = BOOST_LEAF_P("boost::leaf::n::r boost::leaf::n::p() [T = ");
154+
int const p05 = BOOST_LEAF_P("boost::leaf::n::r boost::leaf::n::p() [T = ");
155+
int const p06 = BOOST_LEAF_P("boost::leaf::n::r __cdecl boost::leaf::n::p(void) [T = ");
156+
int const p07 = BOOST_LEAF_P("boost::leaf::n::r __stdcall boost::leaf::n::p(void) [T = ");
157+
int const p08 = BOOST_LEAF_P("boost::leaf::n::r __fastcall boost::leaf::n::p(void) [T = ");
152158
// gcc style:
153-
int const p03 = BOOST_LEAF_P("boost::leaf::n::r boost::leaf::n::p() [with T = ");
159+
int const p09 = BOOST_LEAF_P("boost::leaf::n::r boost::leaf::n::p() [with T = ");
160+
int const p10 = BOOST_LEAF_P("boost::leaf::n::r __cdecl boost::leaf::n::p() [with T = ");
161+
int const p11 = BOOST_LEAF_P("boost::leaf::n::r __stdcall boost::leaf::n::p() [with T = ");
162+
int const p12 = BOOST_LEAF_P("boost::leaf::n::r __fastcall boost::leaf::n::p() [with T = ");
154163
// msvc style, struct:
155-
int const p04 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<struct ");
156-
int const p05 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<struct ");
157-
int const p06 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<struct ");
164+
int const p13 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<struct ");
165+
int const p14 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<struct ");
166+
int const p15 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<struct ");
158167
// msvc style, class:
159-
int const p07 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<class ");
160-
int const p08 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<class ");
161-
int const p09 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<class ");
168+
int const p16 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<class ");
169+
int const p17 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<class ");
170+
int const p18 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<class ");
162171
// msvc style, enum:
163-
int const p10 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<enum ");
164-
int const p11 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<enum ");
165-
int const p12 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<enum ");
172+
int const p19 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<enum ");
173+
int const p20 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<enum ");
174+
int const p21 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<enum ");
166175
// msvc style, built-in type:
167-
int const p13 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<");
168-
int const p14 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<");
169-
int const p15 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<");
176+
int const p22 = BOOST_LEAF_P("struct boost::leaf::n::r __cdecl boost::leaf::n::p<");
177+
int const p23 = BOOST_LEAF_P("struct boost::leaf::n::r __stdcall boost::leaf::n::p<");
178+
int const p24 = BOOST_LEAF_P("struct boost::leaf::n::r __fastcall boost::leaf::n::p<");
170179
#undef BOOST_LEAF_P
171180

172181
#define BOOST_LEAF_S(S) (sizeof(char[1 + detail::check_suffix(BOOST_LEAF_PRETTY_FUNCTION, S)]) - 1)
@@ -178,22 +187,22 @@ namespace n
178187

179188
char static_assert_unrecognized_pretty_function_format_please_file_github_issue[sizeof(
180189
char[
181-
(s01 && (1 == (!!p01 + !!p02 + !!p03)))
190+
(s01 && (1 == (!!p01 + !!p02 + !!p03 + !!p04 + !!p05 + !!p06 + !!p07 + !!p08 + !!p09 + !!p10 + !!p11 + !!p12)))
182191
||
183-
(s02 && (1 == (!!p04 + !!p05 + !!p06 + !!p07 + !!p08 + !!p09 + !!p10 + !!p11 + !!p12)))
192+
(s02 && (1 == (!!p13 + !!p14 + !!p15 + !!p16 + !!p17 + !!p18 + !!p19 + !!p20 + !!p21)))
184193
||
185-
(s02 && (1 == (!!p13 + !!p14 + !!p15)))
194+
(s02 && (1 == (!!p22 + !!p23 + !!p24)))
186195
]
187196
) * 2 - 1];
188197
(void) static_assert_unrecognized_pretty_function_format_please_file_github_issue;
189198

190-
if( int const p = sizeof(char[1 + !!s01 * (p01 + p02 + p03)]) - 1 )
199+
if( int const p = sizeof(char[1 + !!s01 * (p01 + p02 + p03 + p04 + p05 + p06 + p07 + p08 + p09 + p10 + p11 + p12)]) - 1 )
191200
return { BOOST_LEAF_PRETTY_FUNCTION + p, s01 - p };
192201

193-
if( int const p = sizeof(char[1 + !!s02 * (p04 + p05 + p06 + p07 + p08 + p09 + p10 + p11 + p12)]) - 1 )
202+
if( int const p = sizeof(char[1 + !!s02 * (p13 + p14 + p15 + p16 + p17 + p18 + p19 + p20 + p21)]) - 1 )
194203
return { BOOST_LEAF_PRETTY_FUNCTION + p, s02 - p };
195204

196-
int const p = sizeof(char[1 + !!s02 * (p13 + p14 + p15)]) - 1; // p is not zero, we've static asserted the hell out of it
205+
int const p = sizeof(char[1 + !!s02 * (p22 + p23 + p24)]) - 1; // p is not zero, we've static asserted the hell out of it
197206
return { BOOST_LEAF_PRETTY_FUNCTION + p, s02 - p };
198207
}
199208
}

0 commit comments

Comments
 (0)