[Bug tree-optimization/107839] spurious "may be used uninitialized" warning while all uses are under "if (c)"

2022-11-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107839 --- Comment #3 from Vincent Lefèvre --- (In reply to Richard Biener from comment #2) > it's loop invariant motion that hoists the v + v compute out of the loop > and thus outside of its controlling condition. You can see it's careful > to not i

[Bug c/108128] New: missing -Wshift-overflow warning

2022-12-15 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108128 Bug ID: 108128 Summary: missing -Wshift-overflow warning Product: gcc Version: 12.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c A

[Bug c/108128] missing -Wshift-overflow warning

2022-12-15 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108128 --- Comment #1 from Vincent Lefèvre --- Well, with -pedantic, GCC also warns on "enum { A = 1 << 31 };".

[Bug c++/105499] New: inconsistency between -Werror=c++-compat and g++ in __extension__ block

2022-05-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499 Bug ID: 105499 Summary: inconsistency between -Werror=c++-compat and g++ in __extension__ block Product: gcc Version: 11.3.0 Status: UNCONFIRMED Severity: norm

[Bug c++/105499] inconsistency between -Werror=c++-compat and g++ in __extension__ block

2022-05-06 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499 --- Comment #2 from Vincent Lefèvre --- (In reply to Eric Gallager from comment #1) > This is probably another one of those issues with how the preprocessor works > in C++ mode in general; see for example bug 71003 and bug 87274 Note, however,

[Bug target/102498] [9/10 Regression] Long double constant and non-default rounding mode on x86

2022-05-10 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102498 --- Comment #13 from Vincent Lefèvre --- Strange. I still get this bug with gcc-11 (Debian 11.3.0-1) 11.3.0.

[Bug target/102498] [9/10 Regression] Long double constant and non-default rounding mode on x86

2022-05-10 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102498 --- Comment #14 from Vincent Lefèvre --- Sorry, I wasn't using -frounding-math (which matters to have the optimization disabled).

[Bug other/105548] New: -frounding-math description contains an misleading sentence

2022-05-10 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105548 Bug ID: 105548 Summary: -frounding-math description contains an misleading sentence Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal P

[Bug tree-optimization/106155] New: [12/13 Regression] spurious "may be used uninitialized" warning

2022-06-30 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155 Bug ID: 106155 Summary: [12/13 Regression] spurious "may be used uninitialized" warning Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal

[Bug tree-optimization/106155] [12/13 Regression] spurious "may be used uninitialized" warning

2022-06-30 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155 --- Comment #1 from Vincent Lefèvre --- I detected the issue on tests/tfpif.c with the upgrade of Debian's package gcc-snapshot from 1:20220126-1 to 1:20220630-1 (it doesn't occur on tests/tfpif.c with gcc-snapshot 1:20220126-1). However, the si

[Bug bootstrap/105688] Cannot build GCC 11.3 on Fedora 36

2022-07-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105688 --- Comment #21 from Vincent Lefèvre --- I have a similar issue under Debian/unstable with GCC old of a few months, where in x86_64-pc-linux-gnu/libstdc++-v3/po, msgfmt fails with an error like /usr/bin/msgfmt: /home/vlefevre/software/gcc-build

[Bug bootstrap/105688] Cannot build GCC 11.3 on Fedora 36

2022-07-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105688 --- Comment #26 from Vincent Lefèvre --- (In reply to Jonathan Wakely from comment #23) > (In reply to Vincent Lefèvre from comment #21) > > I suppose that LD_LIBRARY_PATH is set because it is needed in order to use > > built libraries. > > It

[Bug bootstrap/105688] GCC 11.3 doesn't build with the GNU gold linker (version 2.37-27.fc36) 1.16: libstdc++.so.6: version `GLIBCXX_3.4.30' not found

2022-07-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105688 --- Comment #33 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #32) > The runpath won't work because the libraries are installed yet. This is what libtool does for GNU MPFR, and this works fine. For instance, when building tes

[Bug bootstrap/105688] GCC 11.3 doesn't build with the GNU gold linker (version 2.37-27.fc36) 1.16: libstdc++.so.6: version `GLIBCXX_3.4.30' not found

2022-07-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105688 --- Comment #35 from Vincent Lefèvre --- And since the title of this bug was changed to mention that this is related to the GNU gold linker, there is a runpath bug in this linker that might affect libtool (perhaps causing it to use LD_LIBRARY_PA

[Bug bootstrap/105688] GCC 11.3 doesn't build with the GNU gold linker (version 2.37-27.fc36) 1.16: libstdc++.so.6: version `GLIBCXX_3.4.30' not found

2022-07-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105688 --- Comment #36 from Vincent Lefèvre --- An alternative solution: for programs that are known to potentially fail due to built libraries and LD_LIBRARY_PATH, GCC could define wrappers that clean up LD_LIBRARY_PATH before executing the real progr

[Bug bootstrap/105688] GCC 11.3 doesn't build with the GNU gold linker (version 2.37-27.fc36) 1.16: libstdc++.so.6: version `GLIBCXX_3.4.30' not found

2022-07-06 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105688 --- Comment #39 from Vincent Lefèvre --- (In reply to Jonathan Wakely from comment #38) > (In reply to Vincent Lefèvre from comment #35) > > (I reported it in 2012, with Jonathan Nieder's patch to fix it, but after 10 > > years, there is still n

[Bug middle-end/14708] description of -ffloat-store in gcc man page incorrect/inaccurate

2021-08-01 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14708 --- Comment #9 from Vincent Lefèvre --- An update after all these years: As Joseph S. Myers said in the gcc-help list in February 2005, "even -ffloat-store only deals with assignment, not casts": https://gcc.gnu.org/pipermail/gcc-help/2005-Februa

[Bug gcov-profile/101773] New: errors when writing to .gcda file are not checked

2021-08-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101773 Bug ID: 101773 Summary: errors when writing to .gcda file are not checked Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component

[Bug gcov-profile/101773] errors when writing to .gcda file are not checked

2021-08-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101773 --- Comment #2 from Vincent Lefèvre --- An immediate exit() might yield other files, the terminal, etc. in a bad state. IMHO, the best thing to do is to stop attempting to write to the file (possibly attempt to remove it, but this might fail), a

[Bug gcov-profile/101773] errors when writing to .gcda file are not checked

2021-08-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101773 --- Comment #4 from Vincent Lefèvre --- GCOV_EXIT_AT_ERROR is not documented in the man page. Anyway, it doesn't seem to work: $ export GCOV_EXIT_AT_ERROR=1 $ printenv GCOV_EXIT_AT_ERROR 1 $ gcc-test -O -fprofile-generate=dir tst.c $ ./a.out $

[Bug gcov-profile/101773] errors when writing to .gcda file are not checked

2021-08-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101773 --- Comment #6 from Vincent Lefèvre --- Created attachment 51259 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51259&action=edit added missing error check on fclose in gcc/gcov-io.c Well, not all errors are detected. There is a missing t

[Bug gcov-profile/101773] errors when writing to .gcda file are not checked

2021-08-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101773 --- Comment #8 from Vincent Lefèvre --- (In reply to Martin Liška from comment #7) > May I please install the patch on your behalf? Yes. Thanks.

[Bug c/61399] LDBL_MAX is incorrect with IBM long double format / overflow issues near large values

2021-08-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61399 --- Comment #11 from Vincent Lefèvre --- In addition to the maximum exponent issue, for LDBL_MAX following the defect report, instead of 0x1.f78p+1023 I would expect 0x1.f7cp+1023 = DBL_MAX +

[Bug c/61399] LDBL_MAX is incorrect with IBM long double format / overflow issues near large values

2021-08-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61399 --- Comment #13 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #12) > That isn't representable in the GCC internal representation, which pretends > the type has fixed 106 bit precision [...] So, if I understand correctly, this

[Bug target/30484] INT_MIN % -1 is well defined for -fwrapv

2021-08-22 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30484 --- Comment #12 from Vincent Lefèvre --- (In reply to Joseph S. Myers from comment #10) > There is still a bug for the -fwrapv case, where clearly both INT_MIN / -1 > and INT_MIN % -1 should be well defined, but probably the extra checks > if imp

[Bug target/30484] INT_MIN % -1 is well defined for -fwrapv

2021-08-23 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30484 --- Comment #14 from Vincent Lefèvre --- Well, you could change the definition of -fwrapv in the same way that the standard has changed. I mean that the intent of making INT_MIN / -1 undefined was *only* for a performance reason (not for a mathem

[Bug target/30484] INT_MIN % -1 is well defined for -fwrapv

2021-08-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30484 --- Comment #16 from Vincent Lefèvre --- The issue is that the source code assuming -fno-wrapv may be more complex, thus giving slower generated code. Here's an example, which consists in adding 3 signed integers, for which the user knows that th

[Bug target/102032] New: missed optimization on 2 equivalent expressions when -fwrapv is not used

2021-08-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102032 Bug ID: 102032 Summary: missed optimization on 2 equivalent expressions when -fwrapv is not used Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: nor

[Bug target/30484] INT_MIN % -1 is well defined for -fwrapv

2021-08-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30484 --- Comment #18 from Vincent Lefèvre --- (In reply to Vincent Lefèvre from comment #16) > int f (int a, int b, int c) > { > if (b < 0) > return a + b + c; > else > return a + c + b; > } > > The generated code with -O3 has 6 instructi

[Bug target/30484] INT_MIN % -1 is well defined for -fwrapv

2021-08-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30484 --- Comment #19 from Vincent Lefèvre --- (In reply to rguent...@suse.de from comment #17) > True. The user could have written the following though: > > int f (int a, int b, int c) > { > return (unsigned)a + b + c; > } This code is incorrect,

[Bug other/90411] Colored diagnostics can omit characters

2021-08-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90411 --- Comment #4 from Vincent Lefèvre --- For other discussions about this issue, which is the same as in grep: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456943 https://debbugs.gnu.org/cgi/bugreport.cgi?bug=15444 (which I already gave in

[Bug sanitizer/81981] [8 Regression] -fsanitize=undefined makes a -Wmaybe-uninitialized warning disappear

2023-08-04 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81981 --- Comment #9 from Vincent Lefèvre --- Note, however, that there is a small regression in GCC 11: the warning for t is output as expected, but if -fsanitize=undefined is given, the message for t is suboptimal, saying "*&t[0]" instead of "t[0]":

[Bug tree-optimization/102032] missed optimization on 2 equivalent expressions when -fwrapv is not used

2023-09-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102032 --- Comment #4 from Vincent Lefèvre --- Note that as said in PR111560 comment 6, re-association may break CSE, e.g. if there are also a + b + d and a + c + e with my example. So, re-association for global optimal CSE, in addition to being diffic

[Bug middle-end/56281] missed VRP optimization on i for signed i << n from undefined left shift in ISO C

2023-09-28 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56281 --- Comment #6 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #1) > Given the amount of code in the wild that assumes 1 << 31 etc. work, I think > it would be a bad idea to try to optimize this for C99, especially when it > is n

[Bug c/60846] Add 128-bit integer types for general use on 32-bit/64-bit CPUs

2024-08-06 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60846 --- Comment #11 from Vincent Lefèvre --- Note that passing 128-bit types or larger is already supported on 32-bit arch: a struct or a union is such a type, and there's also _Decimal128 for the 128-bit size. So, isn't the ABI already defined? (In

[Bug c/116581] New: incorrect -Wfloat-conversion warnings for int to _Decimal64

2024-09-03 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116581 Bug ID: 116581 Summary: incorrect -Wfloat-conversion warnings for int to _Decimal64 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal P

[Bug c/116581] incorrect -Wfloat-conversion warnings for int to _Decimal64

2024-09-03 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116581 --- Comment #1 from Vincent Lefèvre --- I forgot: gcc-snapshot is currently: gcc (Debian 20240829-1) 15.0.0 20240829 (experimental) [master r15-3282-g4ff4875a79c] This bug was still present in GCC 8.4.0 (same messages). With GCC 4.9, 5 and 6, I

[Bug c/116581] incorrect -Wfloat-conversion warnings for int to _Decimal64

2024-09-03 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116581 --- Comment #2 from Vincent Lefèvre --- And the warnings disappear if I change 1 to 1.0 in the testcase.

[Bug c/116690] Miscompile with different optimization flags

2024-09-12 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116690 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Com

[Bug sanitizer/104690] UBSan does not detect undefined behavior on function without a specified return value

2024-09-12 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104690 --- Comment #3 from Vincent Lefèvre --- Well, I can understand that this may be difficult in some cases. For instance: static int f (void) { if (complex_condition_1) return 1; } and used with if (complex_condition_2) printf ("%d\n", f (

[Bug c/68994] GCC doesn't issue any diagnostic for missing end-of-line marker

2023-04-17 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68994 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Comm

[Bug preprocessor/81745] missing warning with -pedantic when a C file does not end with a newline character [-Wnewline-eof]

2023-04-17 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81745 --- Comment #14 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #13) > GCC removed the pedwarning on purpose (between GCC 4.1 and 4.4), see PR > 14331 and PR 68994. No, PR 14331 was just asking to remove the warning by default,

[Bug middle-end/109578] New: fail to remove dead code due to division by zero

2023-04-20 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109578 Bug ID: 109578 Summary: fail to remove dead code due to division by zero Product: gcc Version: 12.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Componen

[Bug middle-end/109578] fail to remove dead code due to division by zero

2023-04-20 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109578 --- Comment #2 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #1) > We don't removing code before undefined behavior ... > That is GCC does not know that printf does not have side effects. Then GCC is incorrect in bug 29968,

[Bug c/29968] integer division by zero with optimization

2023-04-20 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29968 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Comm

[Bug middle-end/109578] fail to remove dead code due to division by zero

2023-04-20 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109578 --- Comment #4 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #3) > Anyways maybe the issue with PR 29968 was a scheduling issue which was fixed > later on that GCC didn't realize divide could trap. OK, thanks, I can see your

[Bug tree-optimization/95699] __builtin_constant_p inconsistencies

2023-04-27 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95699 --- Comment #12 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #11) > Since GCC 11 which is correct now. I confirm. > That changed after r11-1504-g2e0f4a18bc978 for the improved minmax > optimization. The bug has been resolve

[Bug c++/114050] Inconsistency in double/float constant evaluation between 32 and 64 bit

2024-04-16 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114050 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Com

[Bug c++/114740] i686-linux-gnu-g++ does not interpret floating point literals as double

2024-04-16 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114740 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Com

[Bug c++/114050] Inconsistency in double/float constant evaluation between 32 and 64 bit

2024-04-16 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114050 --- Comment #14 from Vincent Lefèvre --- This bug is about "double/float constant evaluation" (and it has been marked as a duplicate of a bug precisely on this subject), not about the rules that are applied *after* this evaluation.

[Bug c++/114050] Inconsistency in double/float constant evaluation between 32 and 64 bit

2024-04-16 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114050 --- Comment #16 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #15) > There is no bug, the compiler implements what the standard says for the > FLT_EVAL_METHOD == 2 case. I agree. I meant this *invalid* bug.

[Bug c/114746] New: With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants

2024-04-16 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114746 Bug ID: 114746 Summary: With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants Product: gcc Version: 14.0 Status: UNCONFIRME

[Bug c++/114050] Inconsistency in double/float constant evaluation between 32 and 64 bit

2024-04-16 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114050 --- Comment #17 from Vincent Lefèvre --- (In reply to Jonathan Wakely from comment #13) > -fexcess-precision does affect constants. Indeed, and this is a bug, as -fexcess-precision=fast was not meant to make general programs less accurate (but

[Bug c/114746] With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants

2024-04-17 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114746 --- Comment #1 from Vincent Lefèvre --- There is the same issue with constant floating-point expressions. Consider the following program given at https://github.com/llvm/llvm-project/issues/89128 #include #include static double const_init

[Bug c/114746] With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants and floating-point constant expressions

2024-04-17 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114746 Vincent Lefèvre changed: What|Removed |Added Summary|With FLT_EVAL_METHOD = 2, |With FLT_EVAL_METHOD = 2,

[Bug c/114746] With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants and floating-point constant expressions

2024-04-22 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114746 --- Comment #4 from Vincent Lefèvre --- I actually find it more confusing the fact that constants are not evaluated in extended precision while everything else is evaluated in extended precision. The real solution to avoid confusion would be to

[Bug c/114746] With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants and floating-point constant expressions

2024-04-22 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114746 --- Comment #6 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #5) > FLT_EVAL_METHOD = 0 is on some hw like the pre-SSE2 ia32 extremely > expensive, far more so than even the very expensive -ffloat-store. That is > certainly no

[Bug c/114746] With FLT_EVAL_METHOD = 2, -fexcess-precision=fast reduces the precision of floating-point constants and floating-point constant expressions

2024-05-01 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114746 --- Comment #7 from Vincent Lefèvre --- BTW, in /usr/include/math.h from the GNU libc 2.37: # define M_PI 3.14159265358979323846 /* pi */ i.e. M_PI is defined with 21 digits in base 10, which corresponds to about 70 digits in base 2

[Bug c/112463] New: ternary operator / -Wsign-compare inconsistency

2023-11-09 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112463 Bug ID: 112463 Summary: ternary operator / -Wsign-compare inconsistency Product: gcc Version: 13.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component

[Bug c/112463] ternary operator / -Wsign-compare inconsistency

2023-11-10 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112463 --- Comment #3 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #2) > One problem with -Wsign-conversion is that it is not enabled with > -Wextra/-Wall . However, I don't understand why -Wsign-compare is enabled by -Wextra but n

[Bug middle-end/576] gcc performs invalid optimization with float operations when different rounding mode.

2023-11-21 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=576 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Commen

[Bug middle-end/576] gcc performs invalid optimization with float operations when different rounding mode.

2023-11-21 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=576 --- Comment #7 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #6) > That is because the code is GNU C90 and not C++ . I've used gcc, not g++. But this fails even with -std=gnu90.

[Bug c/109979] New: [12 Regression] -Wformat-overflow false positive for %d and non-basic expression

2023-05-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109979 Bug ID: 109979 Summary: [12 Regression] -Wformat-overflow false positive for %d and non-basic expression Product: gcc Version: 12.2.0 Status: UNCONFIRMED Sever

[Bug c/109979] -Wformat-overflow false positive for %d and non-basic expression

2023-05-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109979 --- Comment #5 from Vincent Lefèvre --- (In reply to Andrew Pinski from comment #1) > The warning should happen for both ... OK (as the documentation says "[...] that might overflow the destination buffer). (In reply to Richard Biener from com

[Bug target/110011] New: -mfull-toc yields incorrect _Float128 constants on power9

2023-05-27 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110011 Bug ID: 110011 Summary: -mfull-toc yields incorrect _Float128 constants on power9 Product: gcc Version: 8.3.1 Status: UNCONFIRMED Severity: normal Pr

[Bug target/110011] -mfull-toc (-mfp-in-toc) yields incorrect _Float128 constants on power9

2023-05-30 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110011 --- Comment #4 from Vincent Lefèvre --- (In reply to Kewen Lin from comment #3) > Thanks for reporting, this exposes one issue that: when encoding KFmode > constant into toc, it uses the format for the current long double, it could > be wrong if

[Bug tree-optimization/106155] [12/13/14 Regression] spurious "may be used uninitialized" warning

2023-06-12 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155 --- Comment #12 from Vincent Lefèvre --- Here's a similar, simpler testcase: int f1 (void); void f2 (int); long f3 (long); void tst (void) { int badDataSize[3] = { 1, 1, 1 }; for (int i = 0; i < 3; i++) { int emax; if (i =

[Bug c/110374] New: slightly incorrect warning text "ISO C forbids forward parameter declarations"

2023-06-23 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110374 Bug ID: 110374 Summary: slightly incorrect warning text "ISO C forbids forward parameter declarations" Product: gcc Version: 14.0 Status: UNCONFIRMED Severity:

[Bug middle-end/79173] add-with-carry and subtract-with-borrow support (x86_64 and others)

2023-06-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173 --- Comment #28 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #27) > Given that the builtins exist for 10 years already, I think changing it for > them is too late, though they don't seem to take backwards compatibility as > se

[Bug middle-end/79173] add-with-carry and subtract-with-borrow support (x86_64 and others)

2023-06-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173 --- Comment #30 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #29) > (In reply to Vincent Lefèvre from comment #28) > > What do you mean by "the first additions will be less optimized"? (If you > > don't know anything about the

[Bug middle-end/79173] add-with-carry and subtract-with-borrow support (x86_64 and others)

2023-06-24 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173 --- Comment #32 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #31) > (In reply to Vincent Lefèvre from comment #30) > > (In reply to Jakub Jelinek from comment #29) > > > I mean that if the compiler can't see it is in [0, 1], i

[Bug middle-end/323] optimized code gives strange floating point results

2023-07-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 --- Comment #227 from Vincent Lefèvre --- In "See Also", there are several bugs that are related only to vectorization optimizations. What is the relation with this bug? For instance, PR89653 is "GCC (trunk and all earlier versions) fails to vecto

[Bug middle-end/323] optimized code gives strange floating point results

2023-07-05 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 --- Comment #228 from Vincent Lefèvre --- PR64410 and PR68180 should also be removed from "See Also".

[Bug c/101090] incorrect -Wunused-value warning on remquo with constant values

2023-07-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101090 --- Comment #2 from Vincent Lefèvre --- On Debian, I get a warning from GCC 9 to GCC 12 (Debian 12.3.0-6), but neither with GCC 13 (Debian 13.1.0-8) nor with 14.0.0 20230612 (Debian 20230613-1). So, has this bug been fixed (and where)?

[Bug c/106264] [10/11/12/13 Regression] spurious -Wunused-value on a folded frexp, modf, and remquo calls with unused result since r9-1295-g781ff3d80e88d7d0

2023-07-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106264 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Com

[Bug c/101090] incorrect -Wunused-value warning on remquo with constant values

2023-07-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101090 --- Comment #3 from Vincent Lefèvre --- (In reply to Vincent Lefèvre from comment #2) > So, has this bug been fixed (and where)? This seems to be a particular case of PR106264, which was fixed in commit r13-1741-g40f6e5912288256ee8ac41474f2dce7

[Bug c/95057] missing -Wunused-but-set-variable warning on multiple assignments, not all of them used

2023-07-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95057 --- Comment #5 from Vincent Lefèvre --- FYI, Clang 16 does not warn either on the testcases provided in comment 0 (bug report). But contrary to GCC (tested with master r14-1713-g6631fe419c6 - Debian gcc-snapshot package 20230613-1), Clang 15 and

[Bug c/95057] missing -Wunused-but-set-variable warning on multiple assignments, not all of them used

2023-07-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95057 --- Comment #6 from Vincent Lefèvre --- Well, for the ++, --, +=, -=, *=, etc. operators, that's PR44677 (though it is unclear on what it should cover).

[Bug c/44677] Warn for variables incremented but not used (+=, ++)

2023-07-18 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44677 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Comm

[Bug c/89072] -Wall -Werror should be defaults

2024-01-12 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89072 --- Comment #5 from Vincent Lefèvre --- Note that -Wall -Werror seem to be fine in general when they are used alone, but this combination can be very problematic when other options are used, such as -std=c90 -pedantic, and other warnings. So defa

[Bug c/89072] -Wall -Werror should be defaults

2024-01-12 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89072 --- Comment #6 from Vincent Lefèvre --- BTW, note that some code may be generated (instead of being written by a human). So having some code style being an error by default would be very bad.

[Bug c/89072] -Wall -Werror should be defaults

2024-01-12 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89072 --- Comment #12 from Vincent Lefèvre --- (In reply to Segher Boessenkool from comment #11) > Sure. If people want the pain, they can have it. But it is never okay to > cause other people to have -Werror -- they may have a different compiler > (

[Bug middle-end/113540] New: missing -Warray-bounds warning with malloc and a simple loop

2024-01-22 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113540 Bug ID: 113540 Summary: missing -Warray-bounds warning with malloc and a simple loop Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal

[Bug middle-end/113540] missing -Warray-bounds warning with malloc and a simple loop

2024-01-23 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113540 --- Comment #2 from Vincent Lefèvre --- Thanks for the explanations, but why in the following case void foo (void) { volatile char t[4]; for (int i = 0; i <= 4; i++) t[i] = 0; return; } does one get the warning (contrary to the use o

[Bug tree-optimization/61502] == comparison on "one-past" pointer gives wrong result

2024-01-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61502 --- Comment #48 from Vincent Lefèvre --- (In reply to Alexander Cherepanov from comment #35) > DR 260 allows one to argue that representation of these pointers could > change right between the checks but IMHO this part of DR 260 is just wrong > a

[Bug tree-optimization/108467] false positive -Wmaybe-uninitialized warning at -O1 or higher

2024-06-15 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108467 --- Comment #4 from Vincent Lefèvre --- (In reply to Sam James from comment #3) > For 14/15, it seems gone with -O2, but I see it with -Og. The warning still occurs with -O1 too.

[Bug c/94337] Incorrect "dereferencing type-punned pointer will break strict-aliasing rules" warning

2024-09-29 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94337 --- Comment #4 from Vincent Lefèvre --- (In reply to Vincent Lefèvre from comment #3) > * If the effective type remains the same (a union), then using any pointer > cast to another type would be invalid, but this could be unintuitive and > break

[Bug middle-end/116885] Wrong functionality of vararg causes malfunction or crashes

2024-09-29 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116885 --- Comment #11 from Vincent Lefèvre --- (In reply to Jaroslav Fojtík from comment #9) > Accessing to an incompatible type throug pointer is not clean in general. > But I need here to do a dirty job to flip endianity of double type. There > are

[Bug c/94337] Incorrect "dereferencing type-punned pointer will break strict-aliasing rules" warning

2024-09-29 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94337 --- Comment #3 from Vincent Lefèvre --- Hmm... The code might actually be invalid, but I'm not sure. In all the accesses, the effective type is the union type. But the C standard does not say what happens when one takes the member of a union type

[Bug middle-end/116885] Wrong functionality of vararg causes malfunction or crashes

2024-09-29 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116885 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Com

[Bug c/53769] [C11]: Macros __STDC_NO_THREADS__ / __STDC_NO_ATOMIC__ missing.

2024-09-19 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53769 --- Comment #17 from Vincent Lefèvre --- (In reply to Jonathan Wakely from comment #16) > As explained above, this is not something that can be fixed in GCC. I'm wondering why this bug was marked as FIXED, then. This is misleading. > The macro

[Bug c/53769] [C11]: Macros __STDC_NO_THREADS__ / __STDC_NO_ATOMIC__ missing.

2024-09-19 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53769 --- Comment #22 from Vincent Lefèvre --- (In reply to Florian Weimer from comment #21) > (In reply to Jakub Jelinek from comment #20) > > It is not that easy. __STDC_NO_THREADS__ is a predefined macro, so it would > > mean (at least on targets w

[Bug c/53769] [C11]: Macros __STDC_NO_THREADS__ / __STDC_NO_ATOMIC__ missing.

2024-09-19 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53769 --- Comment #19 from Vincent Lefèvre --- (In reply to Florian Weimer from comment #18) > (In reply to Vincent Lefèvre from comment #17) > > (In reply to Jonathan Wakely from comment #16) > > > As explained above, this is not something that can be

[Bug c/117981] -Wc11-c23-compat does not warn for bool, false and true

2024-12-10 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117981 --- Comment #1 from Vincent Lefèvre --- Actually this might not be the goal of this option. It is documented as Warn about features not present in ISO C11, but present in ISO C23. Here, the issue is due to a feature not present in ISO C11, b

[Bug c/117981] New: -Wc11-c23-compat does not warn for bool, false and true

2024-12-10 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117981 Bug ID: 117981 Summary: -Wc11-c23-compat does not warn for bool, false and true Product: gcc Version: 14.2.0 Status: UNCONFIRMED Severity: normal Pri

[Bug c/119011] -Wsign-compare: Split it into several levels

2025-02-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011 Vincent Lefèvre changed: What|Removed |Added CC||vincent-gcc at vinc17 dot net --- Com

[Bug c/119011] -Wsign-compare: Split it into several levels

2025-02-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011 --- Comment #11 from Vincent Lefèvre --- (In reply to Alejandro Colomar from comment #10) [about i + 1 == 0 instead of i == -1] > But this causes readability issues. For error-handling, programmers are > used to writing ==-1, and doing +1==0 wo

[Bug c/119011] -Wsign-compare: Split it into several levels

2025-02-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011 --- Comment #14 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #4) > If you want to compare against all ones time_t, just use ~(time_t)0 or > similar. This one is a bad idea as it may have issues with signed types (when not in

[Bug c/119011] -Wsign-compare: Split it into several levels

2025-02-26 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119011 --- Comment #15 from Vincent Lefèvre --- (In reply to Vincent Lefèvre from comment #14) > (In reply to Jakub Jelinek from comment #4) > > If you want to compare against all ones time_t, just use ~(time_t)0 or > > similar. > > This one is a bad

[Bug c/119014] Extending _Float16 constant at compile and run time differs

2025-02-25 Thread vincent-gcc at vinc17 dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119014 --- Comment #8 from Vincent Lefèvre --- (In reply to Jakub Jelinek from comment #6) > I don't think that is true. Indeed, it seems that I did some mistake when searching the standard, which is a bit contradictory about the case FLT_EVAL_METHOD

<    1   2   3   >