From: Alexandre Oliva Date: Thu, 17 Feb 2005 16:42:09 +0000 (+0000) Subject: re PR c++/20022 (-fno-access-control is broken) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=856a4ce60e753491c4bbad2545c34ec63e69eae7;p=gcc.git re PR c++/20022 (-fno-access-control is broken) gcc/cp/ChangeLog: PR c++/20022 * semantics.c (perform_deferred_access_checks): Use get_deferred_access_checks to get the top of the stack. gcc/testsuite/ChangeLog: PR c++/20022 * g++.dg/other/access3.C: New. From-SVN: r95174 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 91cbb9039dd..f1406be7438 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-02-17 Alexandre Oliva + + PR c++/20022 + * semantics.c (perform_deferred_access_checks): Use + get_deferred_access_checks to get the top of the stack. + 2005-02-15 Alexandre Oliva PR c++/17788 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index ebc213d7812..fcffb3ddfa6 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -285,8 +285,7 @@ perform_deferred_access_checks (void) { tree deferred_check; - for (deferred_check = (VEC_last (deferred_access, deferred_access_stack) - ->deferred_access_checks); + for (deferred_check = get_deferred_access_checks (); deferred_check; deferred_check = TREE_CHAIN (deferred_check)) /* Check access. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7b678a37dfe..4d58a108233 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-17 Alexandre Oliva + + PR c++/20022 + * g++.dg/other/access3.C: New. + 2005-02-17 Ira Rosen * gcc.dg/vect/vect-98.c: New test. diff --git a/gcc/testsuite/g++.dg/other/access3.C b/gcc/testsuite/g++.dg/other/access3.C new file mode 100644 index 00000000000..2c21c1e5fa9 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/access3.C @@ -0,0 +1,13 @@ +// { dg-do compile } +// { dg-options "-fno-access-control" } + +// PR c++/20022 + +// Make sure -fno-access-control doesn't crash, and actually grants at +// least some access. + +class B { + enum A {}; +}; + +B::A r;