blob: a6db22c44feea073e5da8d351970849d7443f3a0 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// No expected rewrite:
// We don't handle global C arrays.
// TODO(364338808) Handle this case.
struct {
int val;
} globalBuffer[4];
// No expected rewrite:
// We don't handle global C arrays.
// TODO(364338808) Handle this case.
struct GlobalHasName {
int val;
} globalNamedBuffer[4];
// No expected rewrite:
// We don't handle global C arrays.
// TODO(364338808) Handle this case.
GlobalHasName globalNamedBufferButNotInline[4];
void fct() {
// Expected rewrite
// struct FuncBuffer {
// int val;
// };
// std::array<FuncBuffer, 4> func_buffer;
struct {
int val;
} func_buffer[4];
// Expected rewrite:
// struct funcHasName {
// int val;
// };
// std::array<funcHasName, 4> funcNamedBuffer;
struct funcHasName {
int val;
} funcNamedBuffer[4];
// Expected rewrite:
// std::array<funcHasName, 4> funcNamedBufferButNotInline;
funcHasName funcNamedBufferButNotInline[4];
// Expected rewrite:
// struct FuncBuffer2 {
// int val;
// };
// static const auto func_buffer2 =
// std::to_array<FuncBuffer2>({{1}, {2}, {3}, {4}});
static const struct {
int val;
} func_buffer2[] = {{1}, {2}, {3}, {4}};
// Buffer accesses to trigger spanification.
func_buffer[2].val = 3;
globalBuffer[2].val = 3;
funcNamedBuffer[2].val = 3;
globalNamedBuffer[2].val = 3;
globalNamedBufferButNotInline[2].val = 3;
funcNamedBufferButNotInline[3].val = 3;
(void)func_buffer2[2].val;
}