Thanks David-

Running clang -v gets me the following.  I did check out the trunk,
following the directions on the Etoile website.

ryan@localhost ~/Etoile $ clang -v
clang version 3.0 (trunk 135766)
Target: x86_64-unknown-linux-gnu
Thread model: posix

When I change the line in NSObject+Trait.m to move the @synthesize above the
load method the class compiles properly, but then I get a ton of errors in
LanguageKit.  I can't imagine there are this many errors in the trunk so I
must be doing something wrong.

Making all for framework LanguageKitCodeGen...
 Creating obj/LanguageKitCodeGen.obj/AMD64/...
 Compiling file CGObjCGNU.cpp ...
In file included from CGObjCGNU.cpp:23:
/home/ryan/Etoile/Languages/LanguageKit/CodeGen/LLVMCompat.h:21:12: error:
no matching function for call to 'Create'
    return llvm::PHINode::Create(Ty, NumReservedValues, NameStr,
InsertBefore);
           ^~~~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Instructions.h:1653:19: note: candidate
function not viable: 1st argument
      ('const llvm::Type *') would lose const qualifier
  static PHINode *Create(Type *Ty, unsigned NumReservedValues,
                  ^
/home/ryan/llvm/include/llvm/Instructions.h:1658:19: note: candidate
function not viable: 1st argument
      ('const llvm::Type *') would lose const qualifier
  static PHINode *Create(Type *Ty, unsigned NumReservedValues,
                  ^
In file included from CGObjCGNU.cpp:23:
/home/ryan/Etoile/Languages/LanguageKit/CodeGen/LLVMCompat.h:36:28: error:
cannot initialize a parameter of type
      'llvm::Type *' with an lvalue of type 'const llvm::Type *'
        return Builder->CreatePHI(Ty, NumReservedValues, NameStr);
                                  ^~
/home/ryan/llvm/include/llvm/Support/IRBuilder.h:1104:28: note: passing
argument to parameter 'Ty' here
  PHINode *CreatePHI(Type *Ty, unsigned NumReservedValues,
                           ^
CGObjCGNU.cpp:247:16: error: no matching function for call to 'get'
        SelStructTy = GetStructType(
                      ^~~~~~~~~~~~~~
/home/ryan/Etoile/Languages/LanguageKit/CodeGen/LLVMCompat.h:55:37: note:
expanded from:
#define GetStructType(context, ...) StructType::get(__VA_ARGS__)
                                    ^~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:211:22: note: candidate function
not viable: no known conversion from
      'const llvm::Type *' to 'llvm::LLVMContext &' for 1st argument;
  static StructType *get(LLVMContext &Context, ArrayRef<Type*> Elements,
                     ^
/home/ryan/llvm/include/llvm/DerivedTypes.h:222:22: note: candidate function
not viable: 1st argument
      ('const llvm::Type *') would lose const qualifier
  static StructType *get(Type *elt1, ...) END_WITH_NULL;
                     ^
/home/ryan/llvm/include/llvm/DerivedTypes.h:216:22: note: candidate function
not viable: requires at most 2 arguments,
      but 3 were provided
  static StructType *get(LLVMContext &Context, bool isPacked = false);
                     ^
CGObjCGNU.cpp:252:44: error: cannot initialize a parameter of type
'llvm::Type *' with an lvalue of type
      'const llvm::StructType *'
        SelectorTy = llvm::PointerType::getUnqual(SelStructTy);
                                                  ^~~~~~~~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:418:39: note: passing argument
to parameter 'ElementType' here
  static PointerType *getUnqual(Type *ElementType) {
                                      ^
CGObjCGNU.cpp:253:44: error: cannot initialize a parameter of type
'llvm::Type *' with an lvalue of type
      'const llvm::Type *'
        PtrToIntTy = llvm::PointerType::getUnqual(IntTy);
                                                  ^~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:418:39: note: passing argument
to parameter 'ElementType' here
  static PointerType *getUnqual(Type *ElementType) {
                                      ^
CGObjCGNU.cpp:262:10: error: no matching function for call to 'get'
        IMPTy = llvm::FunctionType::get(IdTy, IMPArgs, true);
                ^~~~~~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:105:24: note: candidate function
not viable: 1st argument
      ('const llvm::Type *') would lose const qualifier
  static FunctionType *get(Type *Result,
                       ^
/home/ryan/llvm/include/llvm/DerivedTypes.h:110:24: note: candidate function
not viable: requires 2 arguments, but 3
      were provided
  static FunctionType *get(Type *Result, bool isVarArg);
                       ^
CGObjCGNU.cpp:272:13: error: no matching member function for call to
'getOrInsertFunction'
                TheModule.getOrInsertFunction("objc_lookup_class", IdTy,
PtrToInt8Ty,
                ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Module.h:292:13: note: candidate function not
viable: 2nd argument ('const llvm::Type *')
      would lose const qualifier
  Constant *getOrInsertFunction(StringRef Name, Type *RetTy, ...)
            ^
/home/ryan/llvm/include/llvm/Module.h:287:13: note: candidate function not
viable: no known conversion from
      'const llvm::Type *' to 'llvm::AttrListPtr' for 2nd argument;
  Constant *getOrInsertFunction(StringRef Name,
            ^
/home/ryan/llvm/include/llvm/Module.h:275:13: note: candidate function not
viable: requires 3 arguments, but 4 were
      provided
  Constant *getOrInsertFunction(StringRef Name, FunctionType *T,
            ^
/home/ryan/llvm/include/llvm/Module.h:278:13: note: candidate function not
viable: requires 2 arguments, but 4 were
      provided
  Constant *getOrInsertFunction(StringRef Name, FunctionType *T);
            ^
CGObjCGNU.cpp:295:34: error: cannot initialize a parameter of type
'llvm::Type *' with an lvalue of type
      'const llvm::Type *'
                                llvm::PointerType::getUnqual(SelectorTy),
                                                             ^~~~~~~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:418:39: note: passing argument
to parameter 'ElementType' here
  static PointerType *getUnqual(Type *ElementType) {
                                      ^
CGObjCGNU.cpp:315:33: error: cannot initialize a parameter of type
'llvm::Type *' with an lvalue of type
      'const llvm::Type *'
                        llvm::PointerType::getUnqual(SelectorTy),
                                                     ^~~~~~~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:418:39: note: passing argument
to parameter 'ElementType' here
  static PointerType *getUnqual(Type *ElementType) {
                                      ^
CGObjCGNU.cpp:332:14: error: no matching member function for call to
'getOrInsertFunction'
                        TheModule.getOrInsertFunction("sel_register_name",
                        ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Module.h:292:13: note: candidate function not
viable: 2nd argument ('const llvm::Type *')
      would lose const qualifier
  Constant *getOrInsertFunction(StringRef Name, Type *RetTy, ...)
            ^
/home/ryan/llvm/include/llvm/Module.h:287:13: note: candidate function not
viable: no known conversion from
      'const llvm::Type *' to 'llvm::AttrListPtr' for 2nd argument;
  Constant *getOrInsertFunction(StringRef Name,
            ^
/home/ryan/llvm/include/llvm/Module.h:275:13: note: candidate function not
viable: requires 3 arguments, but 4 were
      provided
  Constant *getOrInsertFunction(StringRef Name, FunctionType *T,
            ^
/home/ryan/llvm/include/llvm/Module.h:278:13: note: candidate function not
viable: requires 2 arguments, but 4 were
      provided
  Constant *getOrInsertFunction(StringRef Name, FunctionType *T);
            ^
CGObjCGNU.cpp:341:14: error: no matching member function for call to
'getOrInsertFunction'

TheModule.getOrInsertFunction("sel_register_typed_name",
                        ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Module.h:292:13: note: candidate function not
viable: 2nd argument ('const llvm::Type *')
      would lose const qualifier
  Constant *getOrInsertFunction(StringRef Name, Type *RetTy, ...)
            ^
/home/ryan/llvm/include/llvm/Module.h:287:13: note: candidate function not
viable: no known conversion from
      'const llvm::Type *' to 'llvm::AttrListPtr' for 2nd argument;
  Constant *getOrInsertFunction(StringRef Name,
            ^
/home/ryan/llvm/include/llvm/Module.h:275:13: note: candidate function not
viable: requires 3 arguments, but 5 were
      provided
  Constant *getOrInsertFunction(StringRef Name, FunctionType *T,
            ^
/home/ryan/llvm/include/llvm/Module.h:278:13: note: candidate function not
viable: requires 2 arguments, but 5 were
      provided
  Constant *getOrInsertFunction(StringRef Name, FunctionType *T);
            ^
CGObjCGNU.cpp:365:22: error: no matching function for call to 'get'
        llvm::Constant *C = llvm::ConstantStruct::get(Ty, V);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Constants.h:406:20: note: candidate function
not viable: 1st argument
      ('const llvm::StructType *') would lose const qualifier
  static Constant *get(StructType *T, ArrayRef<Constant*> V);
                   ^
/home/ryan/llvm/include/llvm/Constants.h:407:20: note: candidate function
not viable: 1st argument
      ('const llvm::StructType *') would lose const qualifier
  static Constant *get(StructType *T, ...) END_WITH_NULL;
                   ^
CGObjCGNU.cpp:366:13: error: no matching constructor for initialization of
'llvm::GlobalVariable'
        return new llvm::GlobalVariable(TheModule, Ty, false,
                   ^                    ~~~~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/GlobalVariable.h:58:3: note: candidate
constructor not viable: no known conversion from
      'const llvm::StructType *' to 'llvm::Type *' for 2nd argument;
  GlobalVariable(Module &M, Type *Ty, bool isConstant,
  ^
/home/ryan/llvm/include/llvm/GlobalVariable.h:53:3: note: candidate
constructor not viable: no known conversion from
      'llvm::Module' to 'llvm::Type *' for 1st argument;
  GlobalVariable(Type *Ty, bool isConstant, LinkageTypes Linkage,
  ^
/home/ryan/llvm/include/llvm/GlobalVariable.h:39:3: note: candidate
constructor not viable: requires 1 argument, but 6
      were provided
  GlobalVariable(const GlobalVariable &);     // Do not implement
  ^
CGObjCGNU.cpp:375:22: error: no matching function for call to 'get'
        llvm::Constant *C = llvm::ConstantArray::get(Ty, V);
                            ^~~~~~~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Constants.h:335:20: note: candidate function
not viable: 1st argument
      ('const llvm::ArrayType *') would lose const qualifier
  static Constant *get(ArrayType *T, ArrayRef<Constant*> V);
                   ^
/home/ryan/llvm/include/llvm/Constants.h:343:20: note: candidate function
not viable: no known conversion from
      'const llvm::ArrayType *' to 'llvm::LLVMContext &' for 1st argument;
  static Constant *get(LLVMContext &Context, StringRef Initializer,
                   ^
CGObjCGNU.cpp:376:13: error: no matching constructor for initialization of
'llvm::GlobalVariable'
        return new llvm::GlobalVariable(TheModule, Ty, false,
                   ^                    ~~~~~~~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/GlobalVariable.h:58:3: note: candidate
constructor not viable: no known conversion from
      'const llvm::ArrayType *' to 'llvm::Type *' for 2nd argument;
  GlobalVariable(Module &M, Type *Ty, bool isConstant,
  ^
/home/ryan/llvm/include/llvm/GlobalVariable.h:53:3: note: candidate
constructor not viable: no known conversion from
      'llvm::Module' to 'llvm::Type *' for 1st argument;
  GlobalVariable(Type *Ty, bool isConstant, LinkageTypes Linkage,
  ^
/home/ryan/llvm/include/llvm/GlobalVariable.h:39:3: note: candidate
constructor not viable: requires 1 argument, but 6
      were provided
  GlobalVariable(const GlobalVariable &);     // Do not implement
  ^
CGObjCGNU.cpp:403:18: error: no matching function for call to 'get'
        Ivars.push_back(ConstantInt::get(IntTy, length));
                        ^~~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/Constants.h:65:20: note: candidate function not
viable: 1st argument ('const llvm::Type *')
      would lose const qualifier
  static Constant *get(Type *Ty, uint64_t V, bool isSigned = false);
                   ^
/home/ryan/llvm/include/llvm/Constants.h:73:23: note: candidate function not
viable: no known conversion from
      'const llvm::Type *' to 'llvm::IntegerType *' for 1st argument;
  static ConstantInt *get(IntegerType *Ty, uint64_t V,
                      ^
/home/ryan/llvm/include/llvm/Constants.h:86:23: note: candidate function not
viable: no known conversion from
      'const llvm::Type *' to 'llvm::LLVMContext &' for 1st argument;
  static ConstantInt *get(LLVMContext &Context, const APInt &V);
                      ^
/home/ryan/llvm/include/llvm/Constants.h:95:20: note: candidate function not
viable: 1st argument ('const llvm::Type *')
      would lose const qualifier
  static Constant *get(Type* Ty, const APInt& V);
                   ^
/home/ryan/llvm/include/llvm/Constants.h:90:23: note: candidate function not
viable: requires 3 arguments, but 2 were
      provided
  static ConstantInt *get(IntegerType *Ty, StringRef Str,
                      ^
CGObjCGNU.cpp:405:3: error: no matching function for call to 'get'
                GetStructType(Context, PtrToInt8Ty, PtrToInt8Ty, IntTy,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ryan/Etoile/Languages/LanguageKit/CodeGen/LLVMCompat.h:55:37: note:
expanded from:
#define GetStructType(context, ...) StructType::get(__VA_ARGS__)
                                    ^~~~~~~~~~~~~~~
/home/ryan/llvm/include/llvm/DerivedTypes.h:222:22: note: candidate function
not viable: 1st argument
      ('const llvm::Type *') would lose const qualifier
  static StructType *get(Type *elt1, ...) END_WITH_NULL;
                     ^
/home/ryan/llvm/include/llvm/DerivedTypes.h:211:22: note: candidate function
not viable: requires at most 3 arguments,
      but 4 were provided
  static StructType *get(LLVMContext &Context, ArrayRef<Type*> Elements,
                     ^
/home/ryan/llvm/include/llvm/DerivedTypes.h:216:22: note: candidate function
not viable: requires at most 2 arguments,
      but 4 were provided
  static StructType *get(LLVMContext &Context, bool isPacked = false);
                     ^
CGObjCGNU.cpp:408:43: error: cannot initialize a parameter of type
'llvm::Type *' with an lvalue of type
      'const llvm::Type *'
                llvm::ConstantExpr::getBitCast(ObjCStr, PtrToInt8Ty));
                                                        ^~~~~~~~~~~
/home/ryan/llvm/include/llvm/Constants.h:662:51: note: passing argument to
parameter 'Ty' here
  static Constant *getBitCast (Constant *C, Type *Ty);
                                                  ^
CGObjCGNU.cpp:427:31: error: cannot initialize a parameter of type
'llvm::Type *' with an lvalue of type
      'const llvm::Type *'
                sret = Builder.CreateAlloca(ReturnTy);
                                            ^~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.


On Fri, Jul 22, 2011 at 11:33 AM, David Chisnall <thera...@sucs.org> wrote:

> What version of clang are you using?  With trunk (r134610) I don't see that
> error, and Quentin has (I think) tested with 2.9.  In fact, searching the
> warnings in my copy of the clang source for the word 'after', I can't find
> that warning...
>
> David
>
> On 22 Jul 2011, at 17:27, Ryan Harter wrote:
>
> > I've got a Gentoo box with GNUstep installed and working and llvm and
> clang compiled and configured, but I'm getting errors while compiling Etoile
> which reads: property implementation declaration after method or function
> definition
> >
> > I've tried simply editing the NSObject+Trait.m file to put the
> @synthesize declaration above the load method declaration, but then I end up
> with many more errors.
> >
> > I'm thinking this might be related to libobjc versioning, does that seem
> like a reasonable conjecture?  Any ideas?
> >
> > Thanks
> > Ryan
> >
> > Making all for framework EtoileFoundation...
> >  Compiling file Source/NSObject+Trait.m ...
> > Source/NSObject+Trait.m:208:1: error: property implementation declaration
> after method or function definition [-Werror]
> > @synthesize trait, excludedMethodNames, aliasedMethodNames,
> skippedMethodNames, overridenMethods;
> > ^
> > Source/NSObject+Trait.m:203:1: note: method declared here
> > + (void) load
> > ^
> > Source/NSObject+Trait.m:208:1: error: property implementation declaration
> after method or function definition [-Werror]
> > @synthesize trait, excludedMethodNames, aliasedMethodNames,
> skippedMethodNames, overridenMethods;
> > ^
> > Source/NSObject+Trait.m:203:1: note: method declared here
> > + (void) load
> > ^
> > Source/NSObject+Trait.m:208:1: error: property implementation declaration
> after method or function definition [-Werror]
> > @synthesize trait, excludedMethodNames, aliasedMethodNames,
> skippedMethodNames, overridenMethods;
> > ^
> > Source/NSObject+Trait.m:203:1: note: method declared here
> > + (void) load
> > ^
> > Source/NSObject+Trait.m:208:1: error: property implementation declaration
> after method or function definition [-Werror]
> > @synthesize trait, excludedMethodNames, aliasedMethodNames,
> skippedMethodNames, overridenMethods;
> > ^
> > Source/NSObject+Trait.m:203:1: note: method declared here
> > + (void) load
> > ^
> > Source/NSObject+Trait.m:208:1: error: property implementation declaration
> after method or function definition [-Werror]
> > @synthesize trait, excludedMethodNames, aliasedMethodNames,
> skippedMethodNames, overridenMethods;
> > ^
> > Source/NSObject+Trait.m:203:1: note: method declared here
> > + (void) load
> > ^
> > 5 errors generated.
> > _______________________________________________
> > Etoile-dev mailing list
> > Etoile-dev@gna.org
> > https://mail.gna.org/listinfo/etoile-dev
>
>
> -- Sent from my STANTEC-ZEBRA
>
>
> _______________________________________________
> Etoile-dev mailing list
> Etoile-dev@gna.org
> https://mail.gna.org/listinfo/etoile-dev
>
_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to