xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/d/dmd/objc.c (revision d16b7486a53dcb8072b60ec6fcb4373a2d0c27b7)
1 
2 /* Compiler implementation of the D programming language
3  * Copyright (C) 2015-2019 by The D Language Foundation, All Rights Reserved
4  * written by Michel Fortin
5  * http://www.digitalmars.com
6  * Distributed under the Boost Software License, Version 1.0.
7  * http://www.boost.org/LICENSE_1_0.txt
8  * https://github.com/D-Programming-Language/dmd/blob/master/src/objc_stubs.c
9  */
10 
11 #include "objc.h"
12 #include "aggregate.h"
13 #include "scope.h"
14 
15 class FuncDeclaration;
16 
17 // MARK: ObjcSelector
18 
19 ObjcSelector::ObjcSelector(const char *, size_t, size_t)
20 {
21     printf("Should never be called when D_OBJC is false\n");
22     assert(0);
23 }
24 
25 ObjcSelector *ObjcSelector::lookup(const char *)
26 {
27     printf("Should never be called when D_OBJC is false\n");
28     assert(0);
29     return NULL;
30 }
31 
32 ObjcSelector *ObjcSelector::lookup(const char *, size_t, size_t)
33 {
34     printf("Should never be called when D_OBJC is false\n");
35     assert(0);
36     return NULL;
37 }
38 
39 ObjcSelector *ObjcSelector::create(FuncDeclaration *)
40 {
41     printf("Should never be called when D_OBJC is false\n");
42     assert(0);
43     return NULL;
44 }
45 
46 class UnsupportedObjc : public Objc
47 {
48     void setObjc(ClassDeclaration *cd)
49     {
50         cd->error("Objective-C classes not supported");
51     }
52 
53     void setObjc(InterfaceDeclaration *id)
54     {
55         id->error("Objective-C interfaces not supported");
56     }
57 
58     void setSelector(FuncDeclaration *, Scope *)
59     {
60         // noop
61     }
62 
63     void validateSelector(FuncDeclaration *)
64     {
65         // noop
66     }
67 
68     void checkLinkage(FuncDeclaration *)
69     {
70         // noop
71     }
72 };
73 
74 static Objc *_objc;
75 
76 Objc *objc()
77 {
78     return _objc;
79 }
80 
81 void Objc::_init()
82 {
83     _objc = new UnsupportedObjc();
84 }
85