[Bug target/105576] x86: Support a machine constraint to get raw symbol name

2024-05-27 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105576 --- Comment #14 from Fangrui Song --- > Is there a way to capture a method address in inline asm that works in > -fPIC mode? Specifically I want to capture the address of a static > method that's in a class that's local to a function. I'm able t

[Bug tree-optimization/19661] unnecessary atexit calls emitted for static objects with empty destructors

2024-03-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19661 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #17 from

[Bug c++/114357] New: C++: Support the no_destroy attribute

2024-03-15 Thread i at maskray dot me via Gcc-bugs
++ Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Clang supports [[clang::no_destroy]] (alternative form: `__attribute__((no_destroy))`) to disable exit-time destructors of variables of static or thread local storage duration. * July

[Bug target/111555] [AArch64] __ARM_FEATURE_UNALIGNED should be undefined with -mstrict-align

2024-03-14 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #5 from

[Bug sanitizer/114217] -fsanitize=alignment false positive with intended unaligned struct member access

2024-03-04 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114217 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #14

[Bug middle-end/113987] Binding a reference to an uninitialized data member should not cause -Wuninitialized

2024-02-18 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113987 --- Comment #1 from Fangrui Song --- BTW, https://github.com/llvm/llvm-project/blob/main/clang/test/SemaCXX/uninitialized.cpp has many member initializer list examples

[Bug middle-end/113987] New: Binding a reference to an uninitialized data member should not cause -Wuninitialized

2024-02-18 Thread i at maskray dot me via Gcc-bugs
Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- https://godbolt.org/z/G7ndsTv5c (from https://github.com/llvm/llvm-project/pull/81179#issuecomment-1937082113

[Bug sanitizer/102317] signed integer overflow sanitizer cannot work well with -fno-strict-overflow

2024-02-14 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102317 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #13

[Bug target/105576] x86: Support a machine constraint to get raw symbol name

2024-01-30 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105576 Fangrui Song changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|---

[Bug target/104816] -fcf-protection=branch should generate endbr instead of notrack jumps

2024-01-18 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104816 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #13

[Bug target/105576] x86: Support a machine constraint to get raw symbol name

2024-01-10 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105576 --- Comment #8 from Fangrui Song --- I've encountered another use case related to metadata sections (establish an artificial reference for linker garbage collection purposes) namespace ns { extern int var; } // defined in another translation u

[Bug middle-end/110729] New: -fpatchable-function-entries: __patchable_function_entries has wrong sh_link

2023-07-18 Thread i at maskray dot me via Gcc-bugs
Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Noticed by Ziwei Mao. % cat a.c void f() {} void g() {} void h() {} % gcc -ffunction-sections -fpatchable-function-entry

[Bug c/110094] New: Support __builtin_mem*_inline

2023-06-02 Thread i at maskray dot me via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Clang introduced `__builtin_memcpy_inline` (https://reviews.llvm.org/D73543) in 2020 and `__builtin_memset_inline` (https://reviews.llvm.org/D126903) in 2022. The two builtin functions expand

[Bug target/105576] x86: Support a machine constraint to get raw symbol name

2023-05-04 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105576 --- Comment #6 from Fangrui Song --- (In reply to Hongtao.liu from comment #4) > constraint "i" + "%p0"? > > asm (".pushsection .xxx,\"aw\"; .dc.a %p0; .popsection" :: "i"(addr)); // > supported on aarch64 and riscv > asm (".pushsection .xx

[Bug middle-end/109707] naked attribute should imply the no_instrument_function attribute

2023-05-02 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109707 --- Comment #4 from Fangrui Song --- (In reply to Andrew Pinski from comment #2) > As a workaround, you could add the attribute no_instrument_function. Yes. I thought of this possibility, but pcc's reply on https://github.com/llvm/llvm-project/

[Bug c/109707] Skip __attribute__((naked)) functions for -pg and -finstrument-functions

2023-05-02 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109707 --- Comment #1 from Fangrui Song --- I came here from a PR for Clang: https://github.com/llvm/llvm-project/issues/62504

[Bug c/109707] New: Skip __attribute__((naked)) functions for -pg and -finstrument-functions

2023-05-02 Thread i at maskray dot me via Gcc-bugs
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- The asm in a naked function may reasonably expect the argument registers and the return address register (if present) to be live

[Bug debug/109591] Multiple -fdebug-prefix-map= prefixes match, which one wins?

2023-04-21 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109591 --- Comment #3 from Fangrui Song --- (In reply to Andrew Pinski from comment #2) > GCC added -fdebug-prefix-map= back in r0-82686-gc8aea42ce2c691e4e8 2 years > before clang was first release . So Thank you for the super rapid response! I

[Bug debug/109591] New: Multiple -fdebug-prefix-map= prefixes match, which one wins?

2023-04-21 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- mkdir -p a/b/c echo 'int main(){}' > a/b/c/d.c ~/Dev/gcc/out/release/gcc/xgcc -B ~/Dev/gcc/out/release/gcc -g -c -fdebug-prefi

[Bug sanitizer/109489] [ubsan] Support -fsanitize-trap=

2023-04-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109489 Fangrui Song changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|---

[Bug c/109489] New: [ubsan] Support -fsanitize-trap=

2023-04-12 Thread i at maskray dot me via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Clang has supported -fsanitize-trap=undefined and many fine-grained options[1] e.g. -fsanitize-trap=alignment since 2015. -fsanitize-undefined-trap-on-error is a deprecated alias for -fsanitize

[Bug target/109349] New: Add --print-supported-extensions

2023-03-30 Thread i at maskray dot me via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Clang may add a RISC-V specific option --print-supported-extensions to list implemented ISA extensions with the corresponding versions: https://reviews.llvm.org/D146054 I think it will be

[Bug c++/109267] New: -Og generates empty functions with .cfi_startproc/.cfi_endproc that conflict with other functions

2023-03-23 Thread i at maskray dot me via Gcc-bugs
Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- cat > lib.cpp <<'eof' #include "lib.h" #include void te

[Bug c/108978] New: Add __builtin_FILE_NAME() which behaves like the __FILE_NAME__ macro

2023-02-28 Thread i at maskray dot me via Gcc-bugs
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- PR c/42579 added __FILE_NAME__. On the Clang side someone is proposing __builtin_FILE_NAME (https://reviews.llvm.org/D144878) a la

[Bug c++/108761] Add option to produce a unique section for non-COMDAT __attribute__((section("foo"))) object

2023-02-12 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108761 --- Comment #3 from Fangrui Song --- New syntax setting the flags will be useful. Also, currently there is no way to customize the section type.

[Bug c++/108761] New: Add option to produce a unique section for non-COMDAT __attribute__((section("foo"))) object

2023-02-10 Thread i at maskray dot me via Gcc-bugs
NCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- % cat a.cc __attribute__((section("foo"))) void f() {} __attribute__((section("foo

[Bug target/108622] x86 -fno-pic: use DW_EH_PE_indirect|DW_EH_PE_pcrel for personality/ttype encoding

2023-01-31 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108622 --- Comment #1 from Fangrui Song --- https://gcc.gnu.org/pipermail/gcc-patches/2023-February/611081.html [PATCH] x86: Use DW_EH_PE_indirect|DW_EH_PE_pcrel encodings for -fno-pic code

[Bug target/108622] New: x86 -fno-pic: use DW_EH_PE_indirect|DW_EH_PE_pcrel for personality/ttype encoding

2023-01-31 Thread i at maskray dot me via Gcc-bugs
Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- In .eh_frame and .gcc_except_table, the aarch64 and riscv ports use DW_EH_PE_indirect|DW_EH_PE_pcrel for both -fno-pic

[Bug sanitizer/107963] Support __attribute__((disable_sanitizer_instrumentation))

2022-12-04 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107963 --- Comment #3 from Fangrui Song --- GCC doesn't implement -fsanitize=memory. In the absence of it, __attribute__((disable_sanitizer_instrumentation)) is like __attribute__((no_sanitize("all"))). When -fsanitize=memory is implemented, the two a

[Bug sanitizer/78204] ‘no_sanitize’ attribute directive ignored [-Wattributes]

2022-12-04 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78204 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #8 from

[Bug c/107963] New: Support __attribute__((disable_sanitizer_instrumentation))

2022-12-03 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Clang introduced the attribute in https://reviews.llvm.org/D108029 (2021-08). It disables instrumentations for all kinds of sanitizers. For non

[Bug c++/107543] New: c-family/c-cppbuiltin.cc: Undefine __GNUC_STDC_INLINE__ in C++ mode?

2022-11-06 Thread i at maskray dot me via Gcc-bugs
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- -fgnu89-inline / C99 / C++ inline modes are all different. For C++, perhaps neither __GNUC_STDC_INLINE__ nor __GNUC_GNUC_INLINE__

[Bug driver/106897] driver: support -gz=zstd

2022-09-10 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106897 --- Comment #4 from Fangrui Song --- Yes, the change will be straightforward, basically the files touched by the pending https://gcc.gnu.org/pipermail/gcc-patches/2022-July/597586.html ("[PATCH] Remove legacy -gz=zlib-gnu"). I sent it because

[Bug driver/106897] New: driver: support -gz=zstd

2022-09-09 Thread i at maskray dot me via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Translate -gz=std to --compress-debug-sections=zstd for as and ld. This requires that binutils supports zstd, feature request: https://sourceware.org/bugzilla/show_bug.cgi?id=29397

[Bug target/99888] Add powerpc ELFv2 support for -fpatchable-function-entry*

2022-08-11 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99888 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #5 from

[Bug target/77882] [Aarch64] Add 'naked' function attribute

2022-05-24 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77882 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #11 from

[Bug target/105576] x86: Support a machine constraint to get raw symbol name

2022-05-13 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105576 --- Comment #5 from Fangrui Song --- (In reply to Hongtao.liu from comment #4) > constraint "i" + "%p0"? > > asm (".pushsection .xxx,\"aw\"; .dc.a %p0; .popsection" :: "i"(addr)); // > supported on aarch64 and riscv > asm (".pushsection .xx

[Bug c/105576] New: x86: Support a machine constraint to get raw symbol name

2022-05-11 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- An raw symbolic operand is useful in inline asm (e.g. in C++ to get the mangled name, or in C to let the compiler do some asm checking). In aarch64 and

[Bug driver/93645] Support Clang 12 --ld-path=

2021-12-28 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93645 --- Comment #15 from Fangrui Song --- -- is definitely rare, but not non-existent. In GCC, there is {-,--}specs. In Clang, there are --cuda-path, --ptxas-path, --hip-path, --classpath, etc. (In reply to Martin Liška from comment #14) > > > > I t

[Bug driver/93645] Support Clang 12 --ld-path=

2021-12-22 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93645 --- Comment #13 from Fangrui Song --- (In reply to Martin Liška from comment #12) > (In reply to Fangrui Song from comment #11) > > (In reply to Martin Liška from comment #10) > > > I replied here: > > > https://gcc.gnu.org/pipermail/gcc-patches/

[Bug driver/93645] Support Clang 12 --ld-path=

2021-12-22 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93645 --- Comment #11 from Fangrui Song --- (In reply to Martin Liška from comment #10) > I replied here: > https://gcc.gnu.org/pipermail/gcc-patches/2021-June/573823.html There are people wanting to use mold https://www.reddit.com/r/rust/comments/rhc

[Bug driver/103398] configure: Enable --enable-default-pie by default for Linux

2021-11-23 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103398 --- Comment #2 from Fangrui Song --- I want to switch the default because: * It seems to me that every Linux distro uses --enable-default-pie GCC. I use "many", but it is likely "most" at this point (2021). * When a user builds GCC on Linux, th

[Bug driver/103398] New: configure: Enable --enable-default-pie by default for Linux

2021-11-23 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: driver Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Many Linux distros configure GCC with --enable-default-pie (at least Arch/Debian/Fedora/Gentoo/Ubuntu). I think it makes sense to default to

[Bug driver/100937] configure: Add --enable-default-semantic-interposition

2021-11-22 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100937 --- Comment #11 from Fangrui Song --- To enable interposition on Mach-O, one needs a non-default configuration like: ld -interposable, DYLD_FORCE_FLAT_NAMESPACE or __attribute__((section("__DATA,__interpose"))). On PE/COFF, such interposition ju

[Bug target/100896] --enable-initfini-array should be enabled for cross compiler to Linux

2021-11-05 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100896 --- Comment #5 from Fangrui Song --- Ah, ok, my /tmp/glibc-many/src/gcc is at releases/gcc-11 while the fix is for 12.0? Anyway, you may want to clean up gcc/acinclude.m4

[Bug target/100896] --enable-initfini-array should be enabled for cross compiler to Linux

2021-11-05 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100896 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #4 from

[Bug libgcc/99759] morestack.S should support .init_array.0 besides .ctors.65535

2021-10-08 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99759 Fangrui Song changed: What|Removed |Added Resolution|--- |FIXED Status|NEW

[Bug c/102502] C11: _Static_assert disallows const int operand in -O0 while allows it in higher -O

2021-09-27 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102502 --- Comment #3 from Fangrui Song --- OK, Andrew asked me to file it :) I just wanted to fix glibc and run away from the GCC inconsistency. I know that https://www.iso-9899.info/n1570.html#6.6 p10 says "An implementation may accept other forms o

[Bug c/102502] New: C11: _Static_assert disallows const int operand in -O0 while allows it in higher -O

2021-09-27 Thread i at maskray dot me via Gcc-bugs
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Under some circumstances, const size_t allocation_size = 32768; _Static_assert (allocation_size >= sizeof (str

[Bug c++/102168] New: -Wnon-virtual-dtor shouldn't fire for protected dtor in a class with a friend declaration

2021-09-01 Thread i at maskray dot me via Gcc-bugs
IRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- class base; class b { public: void del(base *x); }; class base { friend b; public: virtual void a

[Bug tree-optimization/83022] malloc & memset -> calloc is not always an optimization

2021-08-20 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83022 --- Comment #6 from Fangrui Song --- The issue succeeded to waste some time of MySQL developers BTW: http://smalldatum.blogspot.com/2017/11/a-new-optimization-in-gcc-5x-and-mysql.html

[Bug tree-optimization/83022] malloc & memset -> calloc is not always an optimization

2021-08-20 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83022 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #5 from

[Bug libgcc/99759] morestack.S should support .init_array.0 besides .ctors.65535

2021-08-11 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99759 --- Comment #3 from Fangrui Song --- (In reply to Alan Modra from comment #2) > > this means the ctors.65535 will come last. > Nope, it will come first. And since DT_INIT_ARRAY pointers are executed in > the order they appear in the array, it wi

[Bug c++/71482] Add -Wglobal-constructors warning option

2021-07-24 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71482 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #5 from

[Bug c/101275] New: [RISCV] Document the machine constraint 'S' and make it non-internal

2021-06-30 Thread i at maskray dot me via Gcc-bugs
ty: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- An absolute symbolic operand is useful in inline asm. In aarch64 and x86-64, there is a documented (supported) approach. // aar

[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

2021-06-23 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 --- Comment #21 from Fangrui Song --- (In reply to Fangrui Song from comment #20) > For example, if an inlining pass happens after instrumentation, then the > function attribute doesn't necessarily need to suppress inlining. After > instrumentati

[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

2021-06-23 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 --- Comment #20 from Fangrui Song --- (In reply to Marco Elver from comment #19) I am ok with "inlining suppression" as an implementation strategy and I agree that it should be useful. What I objected strongly is "promised inlining suppression".

[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

2021-06-23 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 --- Comment #18 from Fangrui Song --- (In reply to Nick Desaulniers from comment #15) > (In reply to Fangrui Song from comment #14) > > Can a no_profile_instrument_function function be inlined into a function > > without the attribute? This may b

[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

2021-06-21 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 --- Comment #14 from Fangrui Song --- (In reply to Martin Liška from comment #13) > What's likely missing is that the attribute should prevent inlining. I'm > going to test how it behaves right now. Then, the issue can be closed. It's not clear

[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

2021-06-15 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 --- Comment #8 from Fangrui Song --- I am thinking of __attribute__((no_profile)). In Clang, -fprofile-generate(-fcs-profile-generate)/-fprofile-instr-generate/-fprofile-arcs are all different. It will make sense to have a attribute disabling al

[Bug gcov-profile/80223] RFE: Exclude functions from profile instrumentation

2021-06-14 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #7 from

[Bug driver/100937] configure: Add --enable-default-semantic-interposition

2021-06-09 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100937 --- Comment #6 from Fangrui Song --- Then can you add a -fvisibility=protected variant which only applies to non-weak defined functions? Two issues need to be fixed: (1): https://sourceware.org/bugzilla/show_bug.cgi?id=27973 __attribute__((vi

[Bug driver/100937] configure: Add --enable-default-semantic-interposition

2021-06-06 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100937 Fangrui Song changed: What|Removed |Added Resolution|WONTFIX |--- Status|RESOLVED

[Bug driver/100937] New: configure: Add --enable-default-semantic-interposition

2021-06-06 Thread i at maskray dot me via Gcc-bugs
Component: driver Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Add a configure option --enable-default-semantic-interposition to customize -f(no-)semantic-interposition default. The suppression of interprocedural optimizations and

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-06-06 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #13 from Fangrui Song --- (In reply to H.J. Lu from comment #12) > We should handle it in the whole Linux software stack: > > https://gitlab.com/x86-psABIs/x86-64-ABI/-/issues/8 > > not just in compiler. It is great that you have

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-06-04 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #11 from Fangrui Song --- (In reply to Alexander Monakov from comment #10) > Is there something wrong or undesirable with making this under -fno-plt (or > the noplt attribute as in your example)? > > (after all, it is a kind of PLT-

[Bug c/100618] Add a -fno-semantic-interposition variant which allows variable interposition

2021-06-04 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100618 Fangrui Song changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-05-26 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #9 from Fangrui Song --- I have a patch to implement this Clang. It'd be good to have a name even if GCC wants to postpone the implementation for now. How about -fdirect-access-external-function & -fno-direct-access-external-functio

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-05-18 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #8 from Fangrui Song --- Seems that -fno-plt -fno-pic does have the required properties. A side effect is that all external calls use the (x86-64) call *f@GOTPCREL(%rip) (x86-32) call *f@GOT form. The instruction is one byte long

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-05-17 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #6 from Fangrui Song --- (In reply to Alexander Monakov from comment #5) > Hm, I still don't think I'm misunderstanding what you're saying. I'm > familiar with the ELF standard (and FWIW I have read your blog posts on > related matte

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-05-17 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #4 from Fangrui Song --- (In reply to Alexander Monakov from comment #3) > I understand what you're saying, but it seems we're talking past each other. > > I agree that if a library is linked with any -Bsymbolic* flag, the main > ex

[Bug middle-end/100593] [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-05-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100593 --- Comment #2 from Fangrui Song --- (In reply to Alexander Monakov from comment #1) > It is not necessary to change -fno-pic code generation to gain most of the > -Bsymbolic benefit It is necessary, otherwise the function address taken from th

[Bug c/100483] Extend -fno-semantic-interposition to global variables

2021-05-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100483 Fangrui Song changed: What|Removed |Added Resolution|--- |INVALID Status|UNCONFIRMED

[Bug c/100618] Add a -fno-semantic-interposition variant which allows variable interposition

2021-05-15 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100618 --- Comment #1 from Fangrui Song --- Perhaps -fsemantic-interposition=function,variable (default -fpic/-fPIC) -fsemantic-interposition=variable (compatible with copy relocations but enable function optimizations) -fsemantic-interposition= (a

[Bug c/100618] New: Add a -fno-semantic-interposition variant which allows variable interposition

2021-05-15 Thread i at maskray dot me via Gcc-bugs
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Extracted from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100483 The documentation says -fno-semantic-interposition applies to

[Bug c/100483] Extend -fno-semantic-interposition to global variables

2021-05-13 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100483 --- Comment #1 from Fangrui Song --- Another request is a new option: -fno-semantic-interposition-function. With this option, we only assume functions cannot be interposed. -fno-semantic-interposition assumes both functions and variables cannot

[Bug c/100593] New: [ELF] -fno-pic: Use GOT to take address of an external default visibility function

2021-05-13 Thread i at maskray dot me via Gcc-bugs
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Most ELF targets use an absolute relocation (e.g. R_X86_64_32) to take the address of a default visibility non-definition

[Bug c/100483] New: Extend -fno-semantic-interposition to global variables

2021-05-07 Thread i at maskray dot me via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- % cat a.c int var; int foo() { return var; } (I implemented this for clang 11 x86) % clang -fpic -fno-semantic-interposition -O2 -S a.c % cat a.s ... foo

[Bug demangler/100437] New: libiberty: Support more characters for function clones

2021-05-05 Thread i at maskray dot me via Gcc-bugs
Component: demangler Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- In the demangler, the ('.' (alpha|'_')+) ('.' digit+)* scheme as implemented for PR40831 allows a decimal but not a hexadecimal. It'

[Bug target/99836] New: aarch64: -fpatchable-function-entry=N[,0] should place .cfi_startproc before NOPs

2021-03-30 Thread i at maskray dot me via Gcc-bugs
Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- Extracted from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92424#c8 % echo 'int main() {}' > a.c % clang --t

[Bug libgcc/99759] New: morestack.S should support .init_array.0 besides .ctors.65535

2021-03-24 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: libgcc Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- to drop reliance on ld's default linker script .init_array: { PROVIDE_HIDDEN (__init_array_start = .);

[Bug c/99587] warning: ‘retain’ attribute ignored while __has_attribute(retain) is 1

2021-03-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99587 --- Comment #6 from Fangrui Song --- (In reply to Jakub Jelinek from comment #5) > (In reply to Florian Weimer from comment #4) > > For retain, something along these lines might work: > > > > diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/

[Bug c/99587] New: warning: ‘retain’ attribute ignored while __has_attribute(retain) is true

2021-03-14 Thread i at maskray dot me via Gcc-bugs
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- If configure-time ld does not support SHF_GNU_RETAIN, __has_attribute(retain) may be true while using it will cause a warning. % cat x.c

[Bug inline-asm/99282] Emit .cfi_sections without arguments for -fno-asynchronous-unwind-tables

2021-02-26 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99282 --- Comment #2 from Fangrui Song --- (In reply to Jakub Jelinek from comment #1) > There is the __GCC_HAVE_DWARF2_CFI_ASM predefined macro that tells if .cfi* > directives are used or not. And, inline asm that wishes to be usable in > both can u

[Bug c/99282] New: Emit .cfi_sections without arguments for -fno-asynchronous-unwind-tables

2021-02-25 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- .cfi_* in inline asm is rare, but can be useful if the user wants precise unwind information. % cat a.c int main() { asm("pu

[Bug target/95095] Feature request: support -fno-unique-section-names

2021-01-25 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95095 --- Comment #9 from Fangrui Song --- (In reply to Segher Boessenkool from comment #8) > I say nothing like that. I say that > .text.hot. > is nasty (is easily mistaken for .text.hot). > > I also say that and that named-per-function sections a

[Bug target/95095] Feature request: support -fno-unique-section-names

2021-01-25 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95095 --- Comment #7 from Fangrui Song --- (In reply to Segher Boessenkool from comment #6) > I was under the impression this unique section thing needed the trailing > dot thing. This probably is not true. > > I still think the old "%" thing is much

[Bug target/95095] Feature request: support -fno-unique-section-names

2021-01-21 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95095 --- Comment #5 from Fangrui Song --- Linux kernel include/asm-generic/vmlinux.lds.h currently has #define TEXT_TEXT \ ALIGN_FUNCTION(); \

[Bug libstdc++/98785] New: _Unwind_ForcedUnwind going through a non-empty exception specification

2021-01-21 Thread i at maskray dot me via Gcc-bugs
Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- gcc/testsuite/g++.dg/eh/forced3.C says forced unwinding calls std::unexpected going through a throw() function. gcc/testsuite/g++.dg

[Bug target/95095] Feature request: support -fno-unique-section-names

2021-01-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95095 --- Comment #3 from Fangrui Song --- (In reply to Segher Boessenkool from comment #2) > Can't we use ".text%name" for -ffunction-sections, like we did originally, > in 1996? See cf4403481dd6. This does not conflict with other section > names, a

[Bug target/98112] Add -fdirect-access-external-data & drop HAVE_LD_PIE_COPYRELOC

2020-12-28 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98112 --- Comment #7 from Fangrui Song --- (In reply to Segher Boessenkool from comment #6) > (In reply to Fangrui Song from comment #5) > > Please read my first comment why copy relocs is a bad name. > > Since I reply to some of that (namely, your ar

[Bug target/98112] Add -fdirect-access-external-data & drop HAVE_LD_PIE_COPYRELOC

2020-12-28 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98112 --- Comment #5 from Fangrui Song --- (In reply to Segher Boessenkool from comment #4) > (In reply to Fangrui Song from comment #3) > > Are you happy with the option name -f[no-]direct-access-external-data ? > > Not at all, no :-( > > The name d

[Bug c/94722] implement __attribute__((no_stack_protector)) function attribute

2020-12-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94722 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #7 from

[Bug middle-end/93195] -fpatchable-function-entries : __patchable_function_entries should consider comdat groups

2020-12-16 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93195 --- Comment #10 from Fangrui Song --- (In reply to Jakub Jelinek from comment #9) > I believe this broke building the kernel, see > https://gcc.gnu.org/pipermail/gcc-patches/2020-December/561974.html > for details. For > ld: .init.data has both

[Bug target/98112] Add -fdirect-access-external-data & drop HAVE_LD_PIE_COPYRELOC

2020-12-14 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98112 --- Comment #3 from Fangrui Song --- Are you happy with the option name -f[no-]direct-access-external-data ? https://reviews.llvm.org/D92633 is what I want to add to Clang. I want GCC and Clang to use the same option names...

[Bug target/97827] bootstrap error building the amdgcn-amdhsa offload compiler with LLVM 11

2020-12-14 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97827 --- Comment #10 from Fangrui Song --- Note: the section key is not just (name, group name "G"). It is a quadruple: (name, group name "G", linked-to "o", unique ID) Keeping just name works for the simplest case. If GCC decides to support PR95095

[Bug target/97827] bootstrap error building the amdgcn-amdhsa offload compiler with LLVM 11

2020-12-14 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97827 Fangrui Song changed: What|Removed |Added CC||i at maskray dot me --- Comment #9 from

[Bug gcov-profile/98257] New: Replace Donald B. Johnson's cycle enumeration with iterative loop finding

2020-12-12 Thread i at maskray dot me via Gcc-bugs
erity: normal Priority: P3 Component: gcov-profile Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me CC: marxin at gcc dot gnu.org Target Milestone: --- gcov used _J. C. Tiernan, An Efficient Search Algorithm to Find the Eleme

[Bug target/98112] Add -fdirect-access-external-data & drop HAVE_LD_PIE_COPYRELOC

2020-12-03 Thread i at maskray dot me via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98112 --- Comment #2 from Fangrui Song --- Note: -fdirect-access-external-data is architecture-independent. For example, currently Clang on aarch64 can perform the following optimization: // clang -target aarch64 -fPIE -O3 adrpx8, :got:var ldr

[Bug c/98112] New: Add -fdirect-access-external-data & drop HAVE_LD_PIE_COPYRELOC

2020-12-02 Thread i at maskray dot me via Gcc-bugs
rmal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- After "x86-64: Optimize access to globals in PIE with copy reloc", GCC x86-64 asks the assembler to produce an R_X86_64_PC32 for an

  1   2   >