diff options
author | Ben Cheng <bccheng@google.com> | 2014-03-25 22:37:19 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2014-03-25 22:37:19 -0700 |
commit | 1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch) | |
tree | c607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/g++.old-deja/g++.other/call1.C | |
parent | 283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff) | |
download | toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2 toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip |
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.old-deja/g++.other/call1.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.old-deja/g++.other/call1.C | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.old-deja/g++.other/call1.C b/gcc-4.9/gcc/testsuite/g++.old-deja/g++.other/call1.C new file mode 100644 index 000000000..e12cffedf --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.old-deja/g++.other/call1.C @@ -0,0 +1,52 @@ +// { dg-do run } +// Test that various calls to non-functions work. + +void f () { } + +typedef void (*fptr)(); +typedef void (&fref)(); +fptr p = f; +fref r = f; +const fptr &pr = p; + +struct A { + fptr p; + + A (fptr n): p(n) { } + operator fptr () { return p; } +}; + +struct B { + fref r; + + B (fptr n): r(*n) { } + operator const fref () { return r; } +}; + +struct C { + const fptr pr; + + C (fptr n): pr(n) { } + operator const fptr& () { return pr; } +}; + +int main () +{ + f(); + + p(); + r(); + pr(); + + A a (f); + a(); + a.p(); + + B b (f); + b(); + b.r(); + + C c (f); + c(); + c.pr(); +} |