Jiri Slaby changed bug 1214249
What Removed Added
CC   rguenther@suse.com

Comment # 2 on bug 1214249 from Jiri Slaby
(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: