Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/warn/pr83054.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
// PR ipa/83054 // { dg-options "-O3 -Wsuggest-final-types" } // { dg-do compile } extern "C" int printf (const char *, ...); struct foo // { dg-warning "final would enable devirtualization of 5 calls" } { static int count; void print (int i, int j) { printf ("foo[%d][%d] = %d\n", i, j, x); } int x; foo () { x = count++; printf("this %d = %x\n", x, (void *)this); } virtual ~foo () { printf("this %d = %x\n", x, (void *)this); --count; } }; int foo::count; int main () { { foo array[3][3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]); } } // The count should be nine, if not, fail the test. if (foo::count != 9) return 1; } if (foo::count != 0) return 1; return 0; }