Remove generic comparison IR ops
[hiphop-php.git] / hphp / tools / clang-gc-tool / X-scan.h.gold
blob21573d9bc953058b633eb499cf86dcd7116a2b96
1 // This file is auto generated.  Do not hand edit.
2 // See xxxREADMExxx for details.
3 #include "hphp/tools/clang-gc-tool/friend.h"
4 #include "X.h"
6 namespace HPHP {
8 template <typename F> void scan(const HPHP::ResourceData& this_, F& mark) {
11 namespace {
12 struct foobar_scanme_friend {
13   typedef int foobar::*type;
14   friend type get(foobar_scanme_friend);
16 template struct friender<foobar_scanme_friend, &foobar::scanme>;
19 template <typename F> void scan(const foobar& this_, F& mark) {
20   HPHP::ResourceData::scan(this_, mark);
21   mark(FGET(foobar, this_, scanme));
24 template <typename F> void scan(const bad_class& this_, F& mark) {
25   mark(this_.ff);
28 template <typename F> void scan(const bad_class2& this_, F& mark) {
29   mark(this_.vec);
32 template <typename F> void scan(const not_bad_class& this_, F& mark) {
33   mark(this_.vec);
36 template <typename F> void scan(const bad_template_use& this_, F& mark) {
37   HPHP::ResourceData::scan(this_, mark);
38   mark(this_.vec);
41 namespace {
42 struct X_v_friend {
43   typedef int X::*type;
44   friend type get(X_v_friend);
46 template struct friender<X_v_friend, &X::v>;
47 struct X_s_friend {
48   typedef char * X::*type;
49   friend type get(X_s_friend);
51 template struct friender<X_s_friend, &X::s>;
54 template <typename F> void scan(const X& this_, F& mark) {
55   HPHP::ResourceData::scan(this_, mark);
56   mark(FGET(X, this_, v));
57   mark(FGET(X, this_, s));
58   mark(this_.x);
61 template <typename F> void scan(const Y::Z& this_, F& mark) {
62   X::scan(this_, mark);
63   mark(this_.y);
64   mark(this_.m);
65   mark(this_.u);
68 template <typename F> void scan(const voidstargc& this_, F& mark) {
69   mark(this_.rd);
70   mark(this_.p);
73 template <typename F> void scan(const opaqueRef& this_, F& mark) {
74   mark(this_.px);
77 template <typename F> void scan(const badcontainer& this_, F& mark) {
78   HPHP::ResourceData::scan(this_, mark);
79   mark(this_.vec);
82 namespace {
83 // cloned type.
84 namespace ns {
85 struct privateParent {
86   int x;
90 template <typename F> void scan(const ns::privateParent& this_, F& mark) {
91   static_assert(sizeof(this_) == 4);
92   mark(this_.x);
95 namespace {
96 // cloned type.
97 namespace ns {
98 struct privateX : public HPHP::ResourceData, public ns::privateParent {
99   char *x;
103 template <typename F> void scan(const ns::privateX& this_, F& mark) {
104   HPHP::ResourceData::scan(this_, mark);
105   ns::privateParent::scan(this_, mark);
106   mark(this_.x);