[LLVMdev] Clang API parsing of the destructor
Kamaljit Lall
klall at factset.com
Fri Sep 21 14:32:51 PDT 2012
Ok, thanks for that tip, that works.
Kam
From: metafoo at gmail.com [mailto:metafoo at gmail.com] On Behalf Of Richard Smith
Sent: Friday, September 21, 2012 4:45 PM
To: Kamaljit Lall
Cc: LLVMdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Clang API parsing of the destructor
On Fri, Sep 21, 2012 at 12:22 PM, Kamaljit Lall <klall at factset.com<mailto:klall at factset.com>> wrote:
I am using the clang API (version 3.1 - trunk 153913) to compile some very simple code as follows
class MyClass
{
~MyClass() ;
};
MyClass::~MyClass()
{
}
int main()
{
return 0;
}
My problem is that I get the error message: test.cpp:20:10: error: destructor cannot have a return type MyClass::~MyClass()
If someone can point me to the right direction that would be great. It compiles fine if the destructor is defined inline to the class.
Note that I can also compile with clang++ fine: -bash-4.1$ clang++ test.cpp
So there must be a setting I'm missing in my clang API usage. Can anyone indicate what that might be. I've been searching all over for a missing option/configuration.
Here is my clang API usage:
// Include appropriate headers.
int main()
{
clang::DiagnosticOptions diagnosticOptions;
diagnosticOptions.ShowColors=1;
diagnosticOptions.ShowOptionNames=1;
clang::TextDiagnosticPrinter *pTextDiagnosticPrinter =
new clang::TextDiagnosticPrinter(
llvm::outs(),
diagnosticOptions);
llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> pDiagIDs;
clang::DiagnosticsEngine *pDiagnosticsEngine =
new clang::DiagnosticsEngine(pDiagIDs, pTextDiagnosticPrinter);
clang::LangOptions languageOptions;
languageOptions.GNUMode = 1;
languageOptions.CXXExceptions = 1;
languageOptions.RTTI = 1;
languageOptions.Bool = 1;
languageOptions.CPlusPlus = 1;
Don't do this, use CompilerInvocation::setLangDefaults. Your problem is probably that ImplicitInt is enabled (but you're likely to have other LangOptions wrong too, and this code may break next time we add one).
clang::FileSystemOptions fileSystemOptions;
clang::FileManager fileManager(fileSystemOptions);
clang::SourceManager sourceManager(
*pDiagnosticsEngine,
fileManager);
clang::TargetOptions targetOptions;
targetOptions.Triple = "x86_64-unknown-linux-gnu";
targetOptions.CPU = "x86-64";
clang::TargetInfo *pTargetInfo =
clang::TargetInfo::CreateTargetInfo(
*pDiagnosticsEngine,
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu<mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120921/86db35bf/attachment.html>
More information about the llvm-dev
mailing list