Skip to content

Commit 9a0900d

Browse files
committed
[NFC][AIX][XCOFF] Fix compile warning on strncpy
GCC warning: ``` In file included from /usr/include/string.h:495, from /usr/include/c++/9/cstring:42, from /llvm-project/llvm/include/llvm/ADT/Hashing.h:53, from /llvm-project/llvm/include/llvm/ADT/ArrayRef.h:12, from /llvm-project/llvm/include/llvm/MC/MCAsmBackend.h:12, from /llvm-project/llvm/lib/MC/XCOFFObjectWriter.cpp:14: In function ‘char* strncpy(char*, const char*, size_t)’, inlined from ‘{anonymous}::Section::Section(const char*, llvm::XCOFF::SectionTypeFlags, bool, {anonymous}::CsectGroups)’ at /llvm-project/llvm/lib/MC/XCOFFObjectWriter.cpp:146:12: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: warning: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 8 equals destination size [-Wstringop-truncation] 106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D94872
1 parent ffb2549 commit 9a0900d

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

llvm/lib/MC/XCOFFObjectWriter.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,13 @@ struct Section {
138138
Group->clear();
139139
}
140140

141-
Section(const char *N, XCOFF::SectionTypeFlags Flags, bool IsVirtual,
141+
Section(StringRef N, XCOFF::SectionTypeFlags Flags, bool IsVirtual,
142142
CsectGroups Groups)
143-
: Address(0), Size(0), FileOffsetToData(0), FileOffsetToRelocations(0),
144-
RelocationCount(0), Flags(Flags), Index(UninitializedIndex),
145-
IsVirtual(IsVirtual), Groups(Groups) {
146-
strncpy(Name, N, XCOFF::NameSize);
143+
: Name(), Address(0), Size(0), FileOffsetToData(0),
144+
FileOffsetToRelocations(0), RelocationCount(0), Flags(Flags),
145+
Index(UninitializedIndex), IsVirtual(IsVirtual), Groups(Groups) {
146+
assert(N.size() <= XCOFF::NameSize && "section name too long");
147+
memcpy(Name, N.data(), N.size());
147148
}
148149
};
149150

0 commit comments

Comments
 (0)