https://bugzilla.suse.com/show_bug.cgi?id=1214249 https://bugzilla.suse.com/show_bug.cgi?id=1214249#c2 Jiri Slaby <jslaby@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenther@suse.com --- Comment #2 from Jiri Slaby <jslaby@suse.com> --- (In reply to Jiri Slaby from comment #1)
How does it come __glibc_objsize(dirbuf.lto_priv+6) is less than 4096?
Provided it comes from parse_merge_name(): 602 static char buf[MAXPATHLEN]; ... 653 return buf;
Is it an LTO fallout? Or gcc 13.2 fallout?
I cannot reproduce with 2 simple units: fun.c:1:#include <limits.h> fun.c:2: fun.c:3:__attribute__((noinline)) char *fun() fun.c:4:{ fun.c:5: static char buf[PATH_MAX]; fun.c:6: fun.c:7: return buf; fun.c:8:} fun.c:9: fun.h:1:#pragma once fun.h:2: fun.h:3:char *fun(); str.c:1:#include <err.h> str.c:2:#include <errno.h> str.c:3:#include <limits.h> str.c:4:#include <stdio.h> str.c:5:#include <stdlib.h> str.c:6:#include <string.h> str.c:7: str.c:8:#include "fun.h" str.c:9: str.c:10:int main(int, char **argv) str.c:11:{ str.c:12: char *buf = fun(); str.c:13: str.c:14: strlcpy(buf, argv[0], PATH_MAX); str.c:15: str.c:16: printf("%s\n", buf); str.c:17: str.c:18: return 0; str.c:19:} Maybe I would need to put them into 2 separated slices? LTO seems to propagate the constant (PATH_MAX) nicely to main and eliminates strlcpy_chk() completely above. -- You are receiving this mail because: You are on the CC list for the bug.