179e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan#include <stdio.h>
279e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
379e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananstruct A {
479e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    int aa;
579e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    char ab;
679e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan};
779e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
879e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananstruct B {
979e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    int ba;
1079e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    int bb;
1179e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan};
1279e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
1379e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananstruct C {
1479e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    int ca;
1579e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    int cb;
1679e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan};
1779e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
1879e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananint Dump (A &a)
1979e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan{
2079e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    return 1;
2179e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan}
2279e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
2379e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananint Dump (B &b)
2479e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan{
2579e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    return 2;
2679e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan}
2779e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
2879e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananint Dump (C &c)
2979e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan{
3079e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    return 3;
3179e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan}
3279e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
3379e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananextern int CallStaticA();
3479e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananextern int CallStaticB();
3579e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
3679e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callananint main()
3779e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan{
3879e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    A myA;
3979e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    B myB;
4079e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    C myC;
4179e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan
4279e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan    printf("%d\n", CallStaticA() + CallStaticB()); // breakpoint
4379e7ad84e2b31baf22e05ab24aaa11b5e0f566a5Sean Callanan}
44