diff options
Diffstat (limited to 'gcc-4.4.3/gcc/testsuite/g++.dg/tree-prof/mversn13.C')
-rw-r--r-- | gcc-4.4.3/gcc/testsuite/g++.dg/tree-prof/mversn13.C | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc-4.4.3/gcc/testsuite/g++.dg/tree-prof/mversn13.C b/gcc-4.4.3/gcc/testsuite/g++.dg/tree-prof/mversn13.C new file mode 100644 index 000000000..3a7a543db --- /dev/null +++ b/gcc-4.4.3/gcc/testsuite/g++.dg/tree-prof/mversn13.C @@ -0,0 +1,37 @@ +/* Make sure -fprofile-generate and -fprofile-use work fine. */ + +/* { dg-options "-O2 -fclone-hot-version-paths" } */ + +static int glob = 0; +int __attribute__ ((version_selector)) +featureTest () +{ + return glob; +} + +int bar (int i) +{ + if (i > 500) + return 2 * i; + return 3 * i; +} + +int foo (int i) +{ + bar (i); +} + +int +dispatch () +{ + int ret = 0; + for (int i = 0; i < 1000; i++) + ret += __builtin_dispatch (featureTest, (void *)foo, (void *)bar, i); + return ret; +} + +int main () +{ + int val = dispatch (); + return val > 10000000; +} |