public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/101119] New: Missing the check about modify global variable for __attribute__((const)) function
@ 2021-06-18 10:56 zhongyunde at huawei dot com
  2021-06-18 12:37 ` [Bug c++/101119] " rguenth at gcc dot gnu.org
  2021-06-18 17:05 ` pinskia at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: zhongyunde at huawei dot com @ 2021-06-18 10:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101119

            Bug ID: 101119
           Summary: Missing the check about modify global variable for
                    __attribute__((const)) function
           Product: gcc
           Version: 10.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhongyunde at huawei dot com
  Target Milestone: ---

As __attribute__((const)) function should have no side effect, so it won't
modify any global variable. but with the newest gcc, it doesn't do such check.


test base on the ARM64 gcc 11.1 on https://gcc.godbolt.org/ with option -O3 -S
-fno-inline -g0 -Wall -Werror.

=====================================================
#include <stdio.h>
int gValue = 1;
class NPair /*: protected Pointers */ {
public:
  int bins[10];
  //int exclusion(int n) __attribute__((const));
  __attribute__((const)) int exclusion (int n) const {
    printf ("before %d\n", bins[0]);
    NPair* pt = const_cast<NPair*>(this);
    pt->bins[0] = 1;
    printf ("after %d\n", bins[0]);
    return gValue++; // expect a error
  }
  NPair (void) {
     bins[0] = 3;
  }
};

// extern int * __restrict bins;
class NPair nPair;

int main (void)
{
  int tmp = nPair.bins[0];

  (void)nPair.exclusion(1);

  return tmp == nPair.bins[0];
}

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug c++/101119] Missing the check about modify global variable for __attribute__((const)) function
  2021-06-18 10:56 [Bug c++/101119] New: Missing the check about modify global variable for __attribute__((const)) function zhongyunde at huawei dot com
@ 2021-06-18 12:37 ` rguenth at gcc dot gnu.org
  2021-06-18 17:05 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-18 12:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101119

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |WONTFIX
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
That's on purpose for the case you know what you are doing (TM).

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug c++/101119] Missing the check about modify global variable for __attribute__((const)) function
  2021-06-18 10:56 [Bug c++/101119] New: Missing the check about modify global variable for __attribute__((const)) function zhongyunde at huawei dot com
  2021-06-18 12:37 ` [Bug c++/101119] " rguenth at gcc dot gnu.org
@ 2021-06-18 17:05 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-06-18 17:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101119

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|WONTFIX                     |DUPLICATE

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Dup of bug 18487.

*** This bug has been marked as a duplicate of bug 18487 ***

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-06-18 17:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-18 10:56 [Bug c++/101119] New: Missing the check about modify global variable for __attribute__((const)) function zhongyunde at huawei dot com
2021-06-18 12:37 ` [Bug c++/101119] " rguenth at gcc dot gnu.org
2021-06-18 17:05 ` pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).