From 24b03cffb0d3f42110dcaf754708cd1204800d12 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Thu, 10 Nov 2016 14:22:30 -0500 Subject: Revise C++ coding style using clang-format Run the `src/clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. Fix expected test output for new line numbers. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit. --- src/Detect.cxx | 92 +- src/Detect.h | 6 +- src/Options.h | 20 +- src/Output.cxx | 1087 +++++++++++--------- src/Output.h | 12 +- src/RunClang.cxx | 301 +++--- src/RunClang.h | 3 +- src/Utils.cxx | 125 +-- src/Utils.h | 5 +- src/castxml.cxx | 92 +- test/expect/gccxml.any.Class-abstract.xml.txt | 8 +- test/expect/gccxml.any.Class-base-offset.xml.txt | 2 +- test/expect/gccxml.any.Class-base-typedef.xml.txt | 14 +- test/expect/gccxml.any.Class-forward.xml.txt | 12 +- test/expect/gccxml.any.Class-friends.xml.txt | 16 +- ...ny.Class-implicit-member-access-mutable.xml.txt | 20 +- ...gccxml.any.Class-implicit-member-access.xml.txt | 18 +- .../gccxml.any.Class-implicit-member-array.xml.txt | 2 +- ...cxml.any.Class-implicit-member-bad-base.xml.txt | 12 +- ...y.Class-implicit-member-const-aggregate.xml.txt | 2 +- .../gccxml.any.Class-implicit-member-const.xml.txt | 4 +- ...xml.any.Class-implicit-member-reference.xml.txt | 4 +- .../gccxml.any.Class-implicit-members.xml.txt | 4 +- ...gccxml.any.Class-member-template-access.xml.txt | 18 +- .../gccxml.any.Class-member-template.xml.txt | 4 +- ...y.Class-partial-template-member-Typedef.xml.txt | 20 +- ...ny.Class-template-Method-Argument-const.xml.txt | 18 +- ....Class-template-Method-Argument-default.xml.txt | 18 +- ....any.Class-template-Method-return-const.xml.txt | 16 +- ...any.Class-template-constructor-template.xml.txt | 16 +- .../gccxml.any.Class-template-friends.xml.txt | 20 +- ...any.Class-template-member-Typedef-const.xml.txt | 20 +- ...ccxml.any.Class-template-member-Typedef.xml.txt | 20 +- ...ass-template-member-nontemplate-Typedef.xml.txt | 8 +- ...cxml.any.Class-template-member-template.xml.txt | 18 +- .../gccxml.any.Class-template-recurse.xml.txt | 16 +- test/expect/gccxml.any.Class-template.xml.txt | 30 +- .../expect/gccxml.any.Constructor-annotate.xml.txt | 2 +- test/expect/gccxml.any.Constructor.xml.txt | 2 +- test/expect/gccxml.any.Converter-annotate.xml.txt | 2 +- test/expect/gccxml.any.Converter.xml.txt | 2 +- test/expect/gccxml.any.Destructor-annotate.xml.txt | 2 +- test/expect/gccxml.any.Destructor.xml.txt | 2 +- test/expect/gccxml.any.Field-annotate.xml.txt | 2 +- test/expect/gccxml.any.Field.xml.txt | 6 +- ...cxml.any.Function-Argument-default-cast.xml.txt | 38 +- ...gccxml.any.Function-Argument-default-ns.xml.txt | 6 +- ...Function-calling-convention-ms-annotate.xml.txt | 14 +- test/expect/gccxml.any.Function-template.xml.txt | 8 +- test/expect/gccxml.any.GNU-float128.xml.txt | 10 +- ...gccxml.any.Method-Argument-default-cast.xml.txt | 12 +- .../gccxml.any.Method-Argument-default.xml.txt | 6 +- test/expect/gccxml.any.Method-annotate.xml.txt | 4 +- test/expect/gccxml.any.Method-overrides.xml.txt | 22 +- .../gccxml.any.Method-rvalue-reference.xml.txt | 12 +- test/expect/gccxml.any.Method.xml.txt | 4 +- .../gccxml.any.Namespace-Class-members.xml.txt | 2 +- .../gccxml.any.Namespace-inline-template.xml.txt | 4 +- .../gccxml.any.OperatorMethod-annotate.xml.txt | 4 +- test/expect/gccxml.any.OperatorMethod.xml.txt | 4 +- .../gccxml.any.Typedef-to-Class-template.xml.txt | 4 +- ...ml.any.Typedef-to-Enumeration-anonymous.xml.txt | 2 +- .../gccxml.any.Typedef-to-Enumeration.xml.txt | 2 +- test/expect/gccxml.any.Variable-in-Class.xml.txt | 2 +- .../gccxml.any.invalid-decl-for-type.xml.txt | 34 +- test/expect/gccxml.any.qualified-type-name.xml.txt | 4 +- .../gccxml.any.using-declaration-class.xml.txt | 22 +- ...ken.any.ReferenceType-to-Class-template.xml.txt | 20 +- test/expect/gccxml.c++11.Class-bases.xml.txt | 42 +- .../gccxml.c++11.Class-template-bases.xml.txt | 28 +- test/expect/gccxml.c++14.Class-bases.xml.txt | 42 +- .../gccxml.c++14.Class-template-bases.xml.txt | 28 +- test/expect/gccxml.c++98.Class-bases.xml.txt | 42 +- .../gccxml.c++98.Class-template-bases.xml.txt | 28 +- test/input/CXXLiteral.cxx | 2 +- test/input/Class-abstract.cxx | 3 +- test/input/Class-annotate.cxx | 4 +- test/input/Class-base-offset.cxx | 19 +- test/input/Class-base-typedef.cxx | 8 +- test/input/Class-bases.cxx | 19 +- test/input/Class-forward.cxx | 3 +- test/input/Class-friends.cxx | 7 +- .../input/Class-implicit-member-access-mutable.cxx | 8 +- test/input/Class-implicit-member-access.cxx | 8 +- test/input/Class-implicit-member-array.cxx | 3 +- test/input/Class-implicit-member-bad-base.cxx | 12 +- .../Class-implicit-member-const-aggregate.cxx | 3 +- test/input/Class-implicit-member-const.cxx | 4 +- test/input/Class-implicit-member-reference.cxx | 4 +- test/input/Class-implicit-members.cxx | 6 +- test/input/Class-incomplete-twice.cxx | 4 +- test/input/Class-member-template-access.cxx | 9 +- test/input/Class-member-template.cxx | 9 +- .../Class-partial-template-member-Typedef.cxx | 8 +- .../input/Class-template-Method-Argument-const.cxx | 4 +- .../Class-template-Method-Argument-default.cxx | 4 +- test/input/Class-template-Method-return-const.cxx | 4 +- test/input/Class-template-bases.cxx | 14 +- test/input/Class-template-constructor-template.cxx | 12 +- test/input/Class-template-friends.cxx | 13 +- test/input/Class-template-member-Typedef-const.cxx | 5 +- test/input/Class-template-member-Typedef.cxx | 5 +- .../Class-template-member-nontemplate-Typedef.cxx | 7 +- test/input/Class-template-member-template.cxx | 10 +- test/input/Class-template-recurse.cxx | 17 +- test/input/Class-template.cxx | 15 +- test/input/Class.cxx | 4 +- test/input/Constructor-annotate.cxx | 5 +- test/input/Constructor.cxx | 3 +- test/input/Converter-annotate.cxx | 5 +- test/input/Converter.cxx | 3 +- test/input/Destructor-annotate.cxx | 5 +- test/input/Destructor.cxx | 3 +- test/input/Enumeration-annotate.cxx | 5 +- test/input/Enumeration-anonymous.cxx | 9 +- test/input/Enumeration.cxx | 3 +- test/input/Field-annotate.cxx | 5 +- test/input/Field.cxx | 5 +- test/input/Function-Argument-annotate.cxx | 2 +- test/input/Function-Argument-default-cast.cxx | 25 +- test/input/Function-Argument-default-ns.cxx | 9 +- test/input/Function-annotate.cxx | 2 +- .../Function-calling-convention-ms-annotate.cxx | 12 +- test/input/Function-calling-convention-ms.cxx | 8 +- test/input/Function-template.cxx | 9 +- test/input/Function-variadic.cxx | 2 +- test/input/FunctionType-variadic.cxx | 2 +- test/input/FundamentalTypes.cxx | 26 +- test/input/GNU-float128.cxx | 9 +- test/input/GNU-va_arg_pack.cxx | 3 +- test/input/Method-Argument-default-cast.cxx | 7 +- test/input/Method-Argument-default.cxx | 3 +- test/input/Method-annotate.cxx | 5 +- test/input/Method-overrides.cxx | 6 +- test/input/Method-rvalue-reference.cxx | 3 +- test/input/Method.cxx | 3 +- test/input/MethodType-cv.cxx | 2 +- test/input/MethodType.cxx | 2 +- test/input/Namespace-Class-members.cxx | 9 +- .../Namespace-Class-partial-template-members.cxx | 14 +- test/input/Namespace-Class-template-members.cxx | 11 +- test/input/Namespace-Function-template-members.cxx | 3 +- test/input/Namespace-anonymous.cxx | 6 +- test/input/Namespace-empty.cxx | 2 +- test/input/Namespace-extern-C-members.cxx | 8 +- test/input/Namespace-inline-start.cxx | 3 +- test/input/Namespace-inline-template.cxx | 11 +- test/input/Namespace-inline.cxx | 12 +- test/input/Namespace-nested.cxx | 18 +- test/input/Namespace-repeat-start.cxx | 4 +- test/input/Namespace-repeat.cxx | 12 +- test/input/Namespace.cxx | 3 +- test/input/OffsetType-cv.cxx | 2 +- test/input/OffsetType.cxx | 2 +- test/input/OperatorFunction-annotate.cxx | 2 +- test/input/OperatorFunction.cxx | 2 +- test/input/OperatorMethod-annotate.cxx | 5 +- test/input/OperatorMethod.cxx | 3 +- test/input/PointerType.cxx | 2 +- test/input/RValueReferenceType.cxx | 2 +- test/input/ReferenceType-to-Class-template.cxx | 5 +- test/input/ReferenceType.cxx | 2 +- test/input/TypeAlias.cxx | 2 +- test/input/TypeAliasTemplate.cxx | 9 +- test/input/Typedef-annotate.cxx | 2 +- test/input/Typedef-paren.cxx | 2 +- test/input/Typedef-to-Class-template.cxx | 3 +- test/input/Typedef-to-Enumeration-anonymous.cxx | 3 +- test/input/Typedef-to-Enumeration.cxx | 4 +- test/input/Typedef-to-FundamentalType-mode.cxx | 2 +- .../Typedef-to-extern-C-FundamentalType-mode.cxx | 2 +- test/input/Variable-annotate.cxx | 2 +- test/input/Variable-in-Class.cxx | 3 +- test/input/Variable-init-cast.cxx | 6 +- test/input/Variable-init-ns.cxx | 4 +- test/input/Variable-init.cxx | 4 +- test/input/inline-asm-ms.cxx | 5 +- test/input/invalid-decl-for-type.cxx | 15 +- test/input/make_integer_seq.cxx | 15 +- test/input/nostart.cxx | 2 +- test/input/qualified-type-name.cxx | 4 +- test/input/using-declaration-class.cxx | 6 +- test/input/using-declaration-ns.cxx | 2 +- test/input/using-declaration-start.cxx | 2 +- test/input/using-directive-ns.cxx | 4 +- test/input/using-directive-start.cxx | 2 +- 186 files changed, 1801 insertions(+), 1468 deletions(-) diff --git a/src/Detect.cxx b/src/Detect.cxx index e1e7b79..21bfef2 100644 --- a/src/Detect.cxx +++ b/src/Detect.cxx @@ -34,20 +34,19 @@ static std::string getClangBuiltinIncludeDir() return getClangResourceDir() + "/include"; } -static bool failedCC(const char* id, - std::vector const& args, - std::string const& out, - std::string const& err, +static bool failedCC(const char* id, std::vector const& args, + std::string const& out, std::string const& err, std::string const& msg) { std::cerr << "error: '--castxml-cc-" << id << "' compiler command failed:\n\n"; - for(std::vector::const_iterator i = args.begin(), - e = args.end(); i != e; ++i) { + for (std::vector::const_iterator i = args.begin(), + e = args.end(); + i != e; ++i) { std::cerr << " '" << *i << "'"; } std::cerr << "\n"; - if(!msg.empty()) { + if (!msg.empty()) { std::cerr << msg << "\n"; } else { std::cerr << out << "\n"; @@ -61,11 +60,10 @@ static void fixPredefines(Options& opts) // Remove any detected conflicting definition of a Clang builtin macro. std::string& pd = opts.Predefines; std::string::size_type beg = 0; - while ((beg = pd.find("#define __has", beg), - beg != std::string::npos)) { + while ((beg = pd.find("#define __has", beg), beg != std::string::npos)) { std::string::size_type end = pd.find('\n', beg); if (end != std::string::npos) { - pd.erase(beg, end+1 - beg); + pd.erase(beg, end + 1 - beg); } else { pd.erase(beg); } @@ -76,31 +74,28 @@ static void setTriple(Options& opts) { std::string const& pd = opts.Predefines; llvm::Triple triple(llvm::sys::getDefaultTargetTriple()); - if(pd.find("#define __x86_64__ 1") != pd.npos || - pd.find("#define _M_X64 ") != pd.npos) { + if (pd.find("#define __x86_64__ 1") != pd.npos || + pd.find("#define _M_X64 ") != pd.npos) { triple.setArchName("x86_64"); - } else if(pd.find("#define __amd64__ 1") != pd.npos || - pd.find("#define _M_AMD64 ") != pd.npos) { + } else if (pd.find("#define __amd64__ 1") != pd.npos || + pd.find("#define _M_AMD64 ") != pd.npos) { triple.setArchName("amd64"); - } else if(pd.find("#define __i386__ 1") != pd.npos || - pd.find("#define _M_IX86 ") != pd.npos) { + } else if (pd.find("#define __i386__ 1") != pd.npos || + pd.find("#define _M_IX86 ") != pd.npos) { triple.setArchName("i386"); } - if(pd.find("#define _WIN32 1") != pd.npos) { + if (pd.find("#define _WIN32 1") != pd.npos) { triple.setVendorName("pc"); triple.setOSName("windows"); } - if(pd.find("#define __MINGW32__ 1") != pd.npos) { + if (pd.find("#define __MINGW32__ 1") != pd.npos) { triple.setEnvironmentName("gnu"); } opts.Triple = triple.getTriple(); } -static bool detectCC_GNU(const char* const* argBeg, - const char* const* argEnd, - Options& opts, - const char* id, - const char* ext) +static bool detectCC_GNU(const char* const* argBeg, const char* const* argEnd, + Options& opts, const char* id, const char* ext) { std::string const fwExplicitSuffix = " (framework directory)"; std::string const fwImplicitSuffix = "/Frameworks"; @@ -114,33 +109,33 @@ static bool detectCC_GNU(const char* const* argBeg, cc_args.push_back("-dM"); cc_args.push_back("-v"); cc_args.push_back(empty_cpp.c_str()); - if(runCommand(int(cc_args.size()), &cc_args[0], ret, out, err, msg) && - ret == 0) { + if (runCommand(int(cc_args.size()), &cc_args[0], ret, out, err, msg) && + ret == 0) { opts.Predefines = out; const char* start_line = "#include <...> search starts here:"; - if(const char* c = strstr(err.c_str(), start_line)) { - if((c = strchr(c, '\n'), c++)) { - while(*c++ == ' ') { - if(const char* e = strchr(c, '\n')) { + if (const char* c = strstr(err.c_str(), start_line)) { + if ((c = strchr(c, '\n'), c++)) { + while (*c++ == ' ') { + if (const char* e = strchr(c, '\n')) { const char* s = c; c = e + 1; - if(*(e - 1) == '\r') { + if (*(e - 1) == '\r') { --e; } - std::string inc(s, e-s); + std::string inc(s, e - s); std::replace(inc.begin(), inc.end(), '\\', '/'); bool fw = ((inc.size() > fwExplicitSuffix.size()) && - (inc.substr(inc.size()-fwExplicitSuffix.size()) == + (inc.substr(inc.size() - fwExplicitSuffix.size()) == fwExplicitSuffix)); - if(fw) { - inc = inc.substr(0, inc.size()-fwExplicitSuffix.size()); + if (fw) { + inc = inc.substr(0, inc.size() - fwExplicitSuffix.size()); } else { fw = ((inc.size() > fwImplicitSuffix.size()) && - (inc.substr(inc.size()-fwImplicitSuffix.size()) == + (inc.substr(inc.size() - fwImplicitSuffix.size()) == fwImplicitSuffix)); } // Replace the compiler builtin include directory with ours. - if (!fw && llvm::sys::fs::exists(inc+"/emmintrin.h")) { + if (!fw && llvm::sys::fs::exists(inc + "/emmintrin.h")) { inc = getClangBuiltinIncludeDir(); } opts.Includes.push_back(Options::Include(inc, fw)); @@ -156,11 +151,8 @@ static bool detectCC_GNU(const char* const* argBeg, } } -static bool detectCC_MSVC(const char* const* argBeg, - const char* const* argEnd, - Options& opts, - const char* id, - const char* ext) +static bool detectCC_MSVC(const char* const* argBeg, const char* const* argEnd, + Options& opts, const char* id, const char* ext) { std::vector cc_args(argBeg, argEnd); std::string detect_vs_cpp = getResourceDir() + "/detect_vs." + ext; @@ -171,16 +163,16 @@ static bool detectCC_MSVC(const char* const* argBeg, cc_args.push_back("-c"); cc_args.push_back("-FoNUL"); cc_args.push_back(detect_vs_cpp.c_str()); - if(runCommand(int(cc_args.size()), &cc_args[0], ret, out, err, msg) && - ret == 0) { - if(const char* predefs = strstr(out.c_str(), "\n#define")) { - opts.Predefines = predefs+1; + if (runCommand(int(cc_args.size()), &cc_args[0], ret, out, err, msg) && + ret == 0) { + if (const char* predefs = strstr(out.c_str(), "\n#define")) { + opts.Predefines = predefs + 1; } - if(const char* includes_str = std::getenv("INCLUDE")) { + if (const char* includes_str = std::getenv("INCLUDE")) { llvm::SmallVector includes; llvm::StringRef includes_ref(includes_str); includes_ref.split(includes, ";", -1, false); - for (llvm::StringRef i: includes) { + for (llvm::StringRef i : includes) { if (!i.empty()) { std::string inc = i; std::replace(inc.begin(), inc.end(), '\\', '/'); @@ -196,10 +188,8 @@ static bool detectCC_MSVC(const char* const* argBeg, } } -bool detectCC(const char* id, - const char* const* argBeg, - const char* const* argEnd, - Options& opts) +bool detectCC(const char* id, const char* const* argBeg, + const char* const* argEnd, Options& opts) { if (strcmp(id, "gnu") == 0) { return detectCC_GNU(argBeg, argEnd, opts, id, "cpp"); diff --git a/src/Detect.h b/src/Detect.h index 1877433..652d712 100644 --- a/src/Detect.h +++ b/src/Detect.h @@ -20,9 +20,7 @@ struct Options; /// detectCC - Detect settings from given compiler command. -bool detectCC(const char* id, - const char* const* argBeg, - const char* const* argEnd, - Options& opts); +bool detectCC(const char* id, const char* const* argBeg, + const char* const* argEnd, Options& opts); #endif // CASTXML_DETECT_H diff --git a/src/Options.h b/src/Options.h index 34f5089..ab7f7ef 100644 --- a/src/Options.h +++ b/src/Options.h @@ -22,16 +22,26 @@ struct Options { - Options(): PPOnly(false), GccXml(false), HaveCC(false), - HaveStd(false), HaveTarget(false) {} + Options() + : PPOnly(false) + , GccXml(false) + , HaveCC(false) + , HaveStd(false) + , HaveTarget(false) + { + } bool PPOnly; bool GccXml; bool HaveCC; bool HaveStd; bool HaveTarget; - struct Include { - Include(std::string const& d, bool f = false): - Directory(d), Framework(f) {} + struct Include + { + Include(std::string const& d, bool f = false) + : Directory(d) + , Framework(f) + { + } std::string Directory; bool Framework; }; diff --git a/src/Output.cxx b/src/Output.cxx index 32ce4b8..55e9ee5 100644 --- a/src/Output.cxx +++ b/src/Output.cxx @@ -49,12 +49,17 @@ protected: clang::ASTContext const& CTX; llvm::raw_ostream& OS; - ASTVisitorBase(clang::CompilerInstance& ci, - clang::ASTContext const& ctx, - llvm::raw_ostream& os): CI(ci), CTX(ctx), OS(os) {} + ASTVisitorBase(clang::CompilerInstance& ci, clang::ASTContext const& ctx, + llvm::raw_ostream& os) + : CI(ci) + , CTX(ctx) + , OS(os) + { + } // Represent cv qualifier state of one dump node. - struct DumpQual { + struct DumpQual + { private: typedef void (DumpQual::*bool_type)() const; void bool_true() const {} @@ -62,12 +67,20 @@ protected: bool IsConst; bool IsVolatile; bool IsRestrict; - DumpQual(): IsConst(false), IsVolatile(false), IsRestrict(false) {} - operator bool_type() const { - return (this->IsConst || this->IsVolatile || this->IsRestrict)? - &DumpQual::bool_true : nullptr; + DumpQual() + : IsConst(false) + , IsVolatile(false) + , IsRestrict(false) + { } - friend bool operator < (DumpQual const& l, DumpQual const& r) { + operator bool_type() const + { + return (this->IsConst || this->IsVolatile || this->IsRestrict) + ? &DumpQual::bool_true + : nullptr; + } + friend bool operator<(DumpQual const& l, DumpQual const& r) + { if (!l.IsConst && r.IsConst) { return true; } else if (l.IsConst && !r.IsConst) { @@ -84,28 +97,39 @@ protected: return false; } } - friend llvm::raw_ostream& operator << (llvm::raw_ostream& os, - DumpQual const& dq) { - return os << (dq.IsConst? "c":"") - << (dq.IsVolatile? "v":"") - << (dq.IsRestrict? "r":""); + friend llvm::raw_ostream& operator<<(llvm::raw_ostream& os, + DumpQual const& dq) + { + return os << (dq.IsConst ? "c" : "") << (dq.IsVolatile ? "v" : "") + << (dq.IsRestrict ? "r" : ""); } }; // Represent id of one dump node. - struct DumpId { + struct DumpId + { private: typedef void (DumpId::*bool_type)() const; void bool_true() const {} public: unsigned int Id; DumpQual Qual; - DumpId(): Id(0), Qual() {} - DumpId(unsigned int id, DumpQual dq): Id(id), Qual(dq) {} - operator bool_type() const { - return this->Id != 0? &DumpId::bool_true : nullptr; + DumpId() + : Id(0) + , Qual() + { + } + DumpId(unsigned int id, DumpQual dq) + : Id(id) + , Qual(dq) + { } - friend bool operator < (DumpId const& l, DumpId const& r) { + operator bool_type() const + { + return this->Id != 0 ? &DumpId::bool_true : nullptr; + } + friend bool operator<(DumpId const& l, DumpId const& r) + { if (l.Id < r.Id) { return true; } else if (l.Id > r.Id) { @@ -114,15 +138,21 @@ protected: return l.Qual < r.Qual; } } - friend llvm::raw_ostream& operator << (llvm::raw_ostream& os, - DumpId const& id) { + friend llvm::raw_ostream& operator<<(llvm::raw_ostream& os, + DumpId const& id) + { return os << id.Id << id.Qual; } }; // Record status of one AST node to be dumped. - struct DumpNode { - DumpNode(): Index(), Complete(false) {} + struct DumpNode + { + DumpNode() + : Index() + , Complete(false) + { + } // Index in nodes ordered by first encounter. DumpId Index; @@ -131,30 +161,34 @@ protected: bool Complete; }; - // Report all decl nodes as unimplemented until overridden. +// Report all decl nodes as unimplemented until overridden. #define ABSTRACT_DECL(DECL) -#define DECL(CLASS, BASE) \ - void Output##CLASS##Decl(clang::CLASS##Decl const* d, DumpNode const* dn) { \ - this->OutputUnimplementedDecl(d, dn); \ +#define DECL(CLASS, BASE) \ + void Output##CLASS##Decl(clang::CLASS##Decl const* d, DumpNode const* dn) \ + { \ + this->OutputUnimplementedDecl(d, dn); \ } #include "clang/AST/DeclNodes.inc" - void OutputUnimplementedDecl(clang::Decl const* d, DumpNode const* dn) { + void OutputUnimplementedDecl(clang::Decl const* d, DumpNode const* dn) + { /* clang-format off */ this->OS << " Index << "\" kind=\"" << encodeXML(d->getDeclKindName()) << "\"/>\n"; /* clang-format on */ } - // Report all type nodes as unimplemented until overridden. +// Report all type nodes as unimplemented until overridden. #define ABSTRACT_TYPE(CLASS, BASE) -#define TYPE(CLASS, BASE) \ - void Output##CLASS##Type(clang::CLASS##Type const* t, DumpNode const* dn) { \ - this->OutputUnimplementedType(t, dn); \ - } +#define TYPE(CLASS, BASE) \ + void Output##CLASS##Type(clang::CLASS##Type const* t, DumpNode const* dn) \ + { \ + this->OutputUnimplementedType(t, dn); \ + } #include "clang/AST/TypeNodes.def" - void OutputUnimplementedType(clang::Type const* t, DumpNode const* dn) { + void OutputUnimplementedType(clang::Type const* t, DumpNode const* dn) + { /* clang-format off */ this->OS << " Index << "\" type_class=\"" << encodeXML(t->getTypeClassName()) @@ -163,47 +197,74 @@ protected: } }; -class ASTVisitor: public ASTVisitorBase +class ASTVisitor : public ASTVisitorBase { // Store a type to be visited, possibly as a record member. - struct DumpType { - DumpType(): Type(), Class(0) {} - DumpType(clang::QualType t, clang::Type const* c = 0): Type(t), Class(c) {} - friend bool operator < (DumpType const& l, DumpType const& r) { + struct DumpType + { + DumpType() + : Type() + , Class(0) + { + } + DumpType(clang::QualType t, clang::Type const* c = 0) + : Type(t) + , Class(c) + { + } + friend bool operator<(DumpType const& l, DumpType const& r) + { // Order by pointer value without discarding low-order // bits used to encode qualifiers. void const* lpp = &l.Type; void const* rpp = &r.Type; void const* lpv = *static_cast(lpp); void const* rpv = *static_cast(rpp); - if(lpv < rpv) { + if (lpv < rpv) { return true; - } else if(lpv > rpv) { + } else if (lpv > rpv) { return false; } else { return l.Class < r.Class; } } - clang::QualType Type; + clang::QualType Type; clang::Type const* Class; }; // Store an entry in the node traversal queue. - struct QueueEntry { + struct QueueEntry + { // Available node kinds. - enum Kinds { + enum Kinds + { KindQual, KindDecl, KindType }; - QueueEntry(DumpNode const* dn): - Kind(KindQual), Decl(nullptr), Type(), DN(dn) {} - QueueEntry(clang::Decl const* d, DumpNode const* dn): - Kind(KindDecl), Decl(d), Type(), DN(dn) {} - QueueEntry(DumpType t, DumpNode const* dn): - Kind(KindType), Decl(nullptr), Type(t), DN(dn) {} + QueueEntry(DumpNode const* dn) + : Kind(KindQual) + , Decl(nullptr) + , Type() + , DN(dn) + { + } + QueueEntry(clang::Decl const* d, DumpNode const* dn) + : Kind(KindDecl) + , Decl(d) + , Type() + , DN(dn) + { + } + QueueEntry(DumpType t, DumpNode const* dn) + : Kind(KindType) + , Decl(nullptr) + , Type(t) + , DN(dn) + { + } // Kind of node at this entry. Kinds Kind; @@ -217,32 +278,36 @@ class ASTVisitor: public ASTVisitorBase // The dump status for this node. DumpNode const* DN; - friend bool operator < (QueueEntry const& l, QueueEntry const& r) { + friend bool operator<(QueueEntry const& l, QueueEntry const& r) + { return l.DN->Index < r.DN->Index; } }; - class PrinterHelper: public clang::PrinterHelper { + class PrinterHelper : public clang::PrinterHelper + { ASTVisitor& Visitor; + public: - PrinterHelper(ASTVisitor& v): Visitor(v) {} - bool handledStmt(clang::Stmt* s, llvm::raw_ostream& os) override { + PrinterHelper(ASTVisitor& v) + : Visitor(v) + { + } + bool handledStmt(clang::Stmt* s, llvm::raw_ostream& os) override + { return this->Visitor.PrintHelpStmt(s, os); } }; /** Get the dump status node for a Clang declaration. */ - DumpNode* GetDumpNode(clang::Decl const* d) { - return &this->DeclNodes[d]; - } + DumpNode* GetDumpNode(clang::Decl const* d) { return &this->DeclNodes[d]; } /** Get the dump status node for a Clang type. */ - DumpNode* GetDumpNode(DumpType t) { - return &this->TypeNodes[t]; - } + DumpNode* GetDumpNode(DumpType t) { return &this->TypeNodes[t]; } /** Get the dump status node for a qualified DumpId. */ - DumpNode* GetDumpNode(DumpId id) { + DumpNode* GetDumpNode(DumpId id) + { assert(id.Qual); return &this->QualNodes[id]; } @@ -260,7 +325,8 @@ class ASTVisitor: public ASTVisitorBase DumpId AddQualDumpNode(DumpId id); /** Helper common to AddDeclDumpNode and AddTypeDumpNode. */ - template DumpId AddDumpNodeImpl(K k, bool complete); + template + DumpId AddDumpNodeImpl(K k, bool complete); /** Allocate a dump node for a source file entry. */ unsigned int AddDumpFile(clang::FileEntry const* f); @@ -385,13 +451,14 @@ class ASTVisitor: public ASTVisitorBase /** Flags used by function output methods to pass information to the OutputFunctionHelper method. */ - enum FunctionHelperFlags { - FH_Returns = (1<<0), - FH_Static = (1<<1), - FH_Explicit = (1<<2), - FH_Const = (1<<3), - FH_Virtual = (1<<4), - FH_Pure = (1<<5), + enum FunctionHelperFlags + { + FH_Returns = (1 << 0), + FH_Static = (1 << 1), + FH_Explicit = (1 << 2), + FH_Const = (1 << 3), + FH_Virtual = (1 << 4), + FH_Pure = (1 << 5), FH__Last }; @@ -516,17 +583,17 @@ private: std::queue FileQueue; public: - ASTVisitor(clang::CompilerInstance& ci, - clang::ASTContext& ctx, - llvm::raw_ostream& os, - Options const& opts): - ASTVisitorBase(ci, ctx, os), - Opts(opts), - NodeCount(0), FileCount(0), - FileBuiltin(false), - RequireComplete(true), - MangleContext(ctx.createMangleContext()), - PrintingPolicy(ctx.getPrintingPolicy()) { + ASTVisitor(clang::CompilerInstance& ci, clang::ASTContext& ctx, + llvm::raw_ostream& os, Options const& opts) + : ASTVisitorBase(ci, ctx, os) + , Opts(opts) + , NodeCount(0) + , FileCount(0) + , FileBuiltin(false) + , RequireComplete(true) + , MangleContext(ctx.createMangleContext()) + , PrintingPolicy(ctx.getPrintingPolicy()) + { this->PrintingPolicy.SuppressUnwrittenScope = true; } @@ -536,29 +603,30 @@ public: }; ASTVisitor::DumpId ASTVisitor::AddDeclDumpNode(clang::Decl const* d, - bool complete, bool forType) { + bool complete, bool forType) +{ // Select the definition or canonical declaration. d = d->getCanonicalDecl(); - if(clang::RecordDecl const* rd = clang::dyn_cast(d)) { - if(clang::RecordDecl const* rdd = rd->getDefinition()) { + if (clang::RecordDecl const* rd = clang::dyn_cast(d)) { + if (clang::RecordDecl const* rdd = rd->getDefinition()) { d = rdd; } } // Replace some decls with those they reference. switch (d->getKind()) { - case clang::Decl::UsingShadow: - return this->AddDeclDumpNode( - static_cast(d)->getTargetDecl(), - complete, forType); - case clang::Decl::LinkageSpec: { - clang::DeclContext const* dc = - static_cast(d)->getDeclContext(); - return this->AddDeclDumpNode(clang::Decl::castFromDeclContext(dc), - complete, forType); - } break; - default: - break; + case clang::Decl::UsingShadow: + return this->AddDeclDumpNode( + static_cast(d)->getTargetDecl(), + complete, forType); + case clang::Decl::LinkageSpec: { + clang::DeclContext const* dc = + static_cast(d)->getDeclContext(); + return this->AddDeclDumpNode(clang::Decl::castFromDeclContext(dc), + complete, forType); + } break; + default: + break; } // Skip invalid declarations that are not needed for a type element. @@ -569,7 +637,7 @@ ASTVisitor::DumpId ASTVisitor::AddDeclDumpNode(clang::Decl const* d, // Skip C++11 declarations gccxml does not support. if (this->Opts.GccXml) { if (clang::FunctionDecl const* fd = - clang::dyn_cast(d)) { + clang::dyn_cast(d)) { if (fd->isDeleted()) { return DumpId(); } @@ -579,14 +647,15 @@ ASTVisitor::DumpId ASTVisitor::AddDeclDumpNode(clang::Decl const* d, } if (clang::FunctionProtoType const* fpt = - fd->getType()->getAs()) { + fd->getType()->getAs()) { if (fpt->getReturnType()->isRValueReferenceType()) { return DumpId(); } for (clang::FunctionProtoType::param_type_iterator - i = fpt->param_type_begin(), e = fpt->param_type_end(); + i = fpt->param_type_begin(), + e = fpt->param_type_end(); i != e; ++i) { - if((*i)->isRValueReferenceType()) { + if ((*i)->isRValueReferenceType()) { return DumpId(); } } @@ -602,7 +671,7 @@ ASTVisitor::DumpId ASTVisitor::AddDeclDumpNode(clang::Decl const* d, } if (clang::TypedefDecl const* td = - clang::dyn_cast(d)) { + clang::dyn_cast(d)) { if (td->getUnderlyingType()->isRValueReferenceType()) { return DumpId(); } @@ -614,7 +683,8 @@ ASTVisitor::DumpId ASTVisitor::AddDeclDumpNode(clang::Decl const* d, ASTVisitor::DumpId ASTVisitor::AddDeclDumpNodeForType(clang::Decl const* d, bool complete, - DumpQual dq) { + DumpQual dq) +{ // Get the id for the canonical decl. DumpId id = this->AddDeclDumpNode(d, complete, true); @@ -628,12 +698,13 @@ ASTVisitor::DumpId ASTVisitor::AddDeclDumpNodeForType(clang::Decl const* d, } ASTVisitor::DumpId ASTVisitor::AddTypeDumpNode(DumpType dt, bool complete, - DumpQual dq) { + DumpQual dq) +{ clang::QualType t = dt.Type; clang::Type const* c = dt.Class; // Extract local qualifiers and recurse with locally unqualified type. - if(t.hasLocalQualifiers()) { + if (t.hasLocalQualifiers()) { dq.IsConst = dq.IsConst || t.isLocalConstQualified(); dq.IsVolatile = dq.IsVolatile || t.isLocalVolatileQualified(); dq.IsRestrict = dq.IsRestrict || t.isLocalRestrictQualified(); @@ -643,72 +714,74 @@ ASTVisitor::DumpId ASTVisitor::AddTypeDumpNode(DumpType dt, bool complete, // Replace some types with their decls. switch (t->getTypeClass()) { - case clang::Type::Adjusted: - return this->AddTypeDumpNode(DumpType( - t->getAs()->getAdjustedType(), c), - complete, dq); - case clang::Type::Attributed: - return this->AddTypeDumpNode(DumpType( - t->getAs()->getEquivalentType(), c), - complete, dq); - case clang::Type::Decayed: - return this->AddTypeDumpNode(DumpType( - t->getAs()->getDecayedType(), c), - complete, dq); - case clang::Type::Elaborated: - return this->AddTypeDumpNode(DumpType( - t->getAs()->getNamedType(), c), - complete, dq); - case clang::Type::Enum: - return this->AddDeclDumpNodeForType( - t->getAs()->getDecl(), complete, dq); - case clang::Type::Paren: - return this->AddTypeDumpNode(DumpType( - t->getAs()->getInnerType(), c), - complete, dq); - case clang::Type::Record: - return this->AddDeclDumpNodeForType( - t->getAs()->getDecl(), complete, dq); - case clang::Type::SubstTemplateTypeParm: - return this->AddTypeDumpNode(DumpType( - t->getAs()->getReplacementType(), c), - complete, dq); - case clang::Type::TemplateSpecialization: { - clang::TemplateSpecializationType const* tst = - t->getAs(); - if(tst->isSugared()) { - return this->AddTypeDumpNode(DumpType(tst->desugar(), c), - complete, dq); - } - } break; - case clang::Type::Typedef: { - clang::TypedefType const* tdt = t->getAs(); - if(!tdt->isInstantiationDependentType() && tdt->isSugared()) { - // Make sure all containing contexts are not templates. - clang::Decl const* d = tdt->getDecl(); - while (clang::DeclContext const* tdc = d->getDeclContext()) { - if (clang::CXXRecordDecl const* tdx = - clang::dyn_cast(tdc)) { - d = tdx; - if (tdx->getDescribedClassTemplate() || - clang::isa(tdx) - ) { - // This TypedefType refers to a non-dependent - // TypedefDecl member of a class template. Since gccxml - // format does not include uninstantiated templates we - // must use the desugared type so that we do not end up - // referencing a class template as context. - return this->AddTypeDumpNode(tdt->desugar(), complete, dq); + case clang::Type::Adjusted: + return this->AddTypeDumpNode( + DumpType(t->getAs()->getAdjustedType(), c), + complete, dq); + case clang::Type::Attributed: + return this->AddTypeDumpNode( + DumpType(t->getAs()->getEquivalentType(), c), + complete, dq); + case clang::Type::Decayed: + return this->AddTypeDumpNode( + DumpType(t->getAs()->getDecayedType(), c), + complete, dq); + case clang::Type::Elaborated: + return this->AddTypeDumpNode( + DumpType(t->getAs()->getNamedType(), c), + complete, dq); + case clang::Type::Enum: + return this->AddDeclDumpNodeForType( + t->getAs()->getDecl(), complete, dq); + case clang::Type::Paren: + return this->AddTypeDumpNode( + DumpType(t->getAs()->getInnerType(), c), complete, + dq); + case clang::Type::Record: + return this->AddDeclDumpNodeForType( + t->getAs()->getDecl(), complete, dq); + case clang::Type::SubstTemplateTypeParm: + return this->AddTypeDumpNode( + DumpType( + t->getAs()->getReplacementType(), + c), + complete, dq); + case clang::Type::TemplateSpecialization: { + clang::TemplateSpecializationType const* tst = + t->getAs(); + if (tst->isSugared()) { + return this->AddTypeDumpNode(DumpType(tst->desugar(), c), complete, + dq); + } + } break; + case clang::Type::Typedef: { + clang::TypedefType const* tdt = t->getAs(); + if (!tdt->isInstantiationDependentType() && tdt->isSugared()) { + // Make sure all containing contexts are not templates. + clang::Decl const* d = tdt->getDecl(); + while (clang::DeclContext const* tdc = d->getDeclContext()) { + if (clang::CXXRecordDecl const* tdx = + clang::dyn_cast(tdc)) { + d = tdx; + if (tdx->getDescribedClassTemplate() || + clang::isa( + tdx)) { + // This TypedefType refers to a non-dependent + // TypedefDecl member of a class template. Since gccxml + // format does not include uninstantiated templates we + // must use the desugared type so that we do not end up + // referencing a class template as context. + return this->AddTypeDumpNode(tdt->desugar(), complete, dq); + } + } else { + break; } - } else { - break; } } - } - return this->AddDeclDumpNodeForType(tdt->getDecl(), complete, dq); - } break; - default: - break; + return this->AddDeclDumpNodeForType(tdt->getDecl(), complete, dq); + } break; + default: + break; } // Get the id for the fully desugared, unqualified type. @@ -723,7 +796,8 @@ ASTVisitor::DumpId ASTVisitor::AddTypeDumpNode(DumpType dt, bool complete, return id; } -ASTVisitor::DumpId ASTVisitor::AddQualDumpNode(DumpId id) { +ASTVisitor::DumpId ASTVisitor::AddQualDumpNode(DumpId id) +{ DumpNode* dn = this->GetDumpNode(id); if (!dn->Index) { dn->Index = id; @@ -741,7 +815,7 @@ ASTVisitor::DumpId ASTVisitor::AddDumpNodeImpl(K k, bool complete) DumpNode* dn = this->GetDumpNode(k); if (dn->Index) { // Node was already encountered. See if it is now complete. - if(complete && !dn->Complete) { + if (complete && !dn->Complete) { // Node is now complete, but wasn't before. Queue it. dn->Complete = true; this->Queue.insert(QueueEntry(k, dn)); @@ -750,7 +824,7 @@ ASTVisitor::DumpId ASTVisitor::AddDumpNodeImpl(K k, bool complete) // This is a new node. Assign it an index. dn->Index.Id = ++this->NodeCount; dn->Complete = complete; - if(complete || !this->RequireComplete) { + if (complete || !this->RequireComplete) { // Node is complete. Queue it. this->Queue.insert(QueueEntry(k, dn)); } @@ -762,7 +836,7 @@ ASTVisitor::DumpId ASTVisitor::AddDumpNodeImpl(K k, bool complete) unsigned int ASTVisitor::AddDumpFile(clang::FileEntry const* f) { unsigned int& index = this->FileNodes[f]; - if(index == 0) { + if (index == 0) { index = ++this->FileCount; this->FileQueue.push(f); } @@ -773,11 +847,12 @@ void ASTVisitor::AddClassTemplateDecl(clang::ClassTemplateDecl const* d, std::set* emitted) { // Queue all the instantiations of this class template. - for(clang::ClassTemplateDecl::spec_iterator i = d->spec_begin(), - e = d->spec_end(); i != e; ++i) { + for (clang::ClassTemplateDecl::spec_iterator i = d->spec_begin(), + e = d->spec_end(); + i != e; ++i) { clang::CXXRecordDecl const* rd = *i; DumpId id = this->AddDeclDumpNode(rd, true); - if(id && emitted) { + if (id && emitted) { emitted->insert(id); } } @@ -787,11 +862,12 @@ void ASTVisitor::AddFunctionTemplateDecl(clang::FunctionTemplateDecl const* d, std::set* emitted) { // Queue all the instantiations of this function template. - for(clang::FunctionTemplateDecl::spec_iterator i = d->spec_begin(), - e = d->spec_end(); i != e; ++i) { + for (clang::FunctionTemplateDecl::spec_iterator i = d->spec_begin(), + e = d->spec_end(); + i != e; ++i) { clang::FunctionDecl const* fd = *i; DumpId id = this->AddDeclDumpNode(fd, true); - if(id && emitted) { + if (id && emitted) { emitted->insert(id); } } @@ -802,12 +878,13 @@ void ASTVisitor::AddDeclContextMembers(clang::DeclContext const* dc, { bool const isTranslationUnit = clang::isa(dc); - for(clang::DeclContext::decl_iterator i = dc->decls_begin(), - e = dc->decls_end(); i != e; ++i) { + for (clang::DeclContext::decl_iterator i = dc->decls_begin(), + e = dc->decls_end(); + i != e; ++i) { clang::Decl const* d = *i; // Skip declarations that are not really members of this context. - if(d->getDeclContext() != dc) { + if (d->getDeclContext() != dc) { continue; } @@ -824,60 +901,60 @@ void ASTVisitor::AddDeclContextMembers(clang::DeclContext const* dc, // Ignore certain members. switch (d->getKind()) { - case clang::Decl::CXXRecord: { - clang::CXXRecordDecl const* rd = - static_cast(d); - if (rd->isInjectedClassName()) { + case clang::Decl::CXXRecord: { + clang::CXXRecordDecl const* rd = + static_cast(d); + if (rd->isInjectedClassName()) { + continue; + } + } break; + case clang::Decl::AccessSpec: { continue; - } - } break; - case clang::Decl::AccessSpec: { - continue; - } break; - case clang::Decl::ClassTemplate: { - this->AddClassTemplateDecl( - static_cast(d), &emitted); - continue; - } break; - case clang::Decl::ClassTemplatePartialSpecialization: { - continue; - } break; - case clang::Decl::Empty: { - continue; - } break; - case clang::Decl::Friend: { - continue; - } break; - case clang::Decl::FunctionTemplate: { - this->AddFunctionTemplateDecl( - static_cast(d), &emitted); - continue; - } break; - case clang::Decl::LinkageSpec: { - this->AddDeclContextMembers( - static_cast(d), emitted); - continue; - } break; - case clang::Decl::Namespace: { - clang::NamespaceDecl const* nd = - static_cast(d); - if (nd->isInline()) { - this->AddDeclContextMembers(nd, emitted); + } break; + case clang::Decl::ClassTemplate: { + this->AddClassTemplateDecl( + static_cast(d), &emitted); continue; - } - } break; - case clang::Decl::Using: { - continue; - } break; - case clang::Decl::UsingDirective: { - continue; - } break; - default: - break; + } break; + case clang::Decl::ClassTemplatePartialSpecialization: { + continue; + } break; + case clang::Decl::Empty: { + continue; + } break; + case clang::Decl::Friend: { + continue; + } break; + case clang::Decl::FunctionTemplate: { + this->AddFunctionTemplateDecl( + static_cast(d), &emitted); + continue; + } break; + case clang::Decl::LinkageSpec: { + this->AddDeclContextMembers( + static_cast(d), emitted); + continue; + } break; + case clang::Decl::Namespace: { + clang::NamespaceDecl const* nd = + static_cast(d); + if (nd->isInline()) { + this->AddDeclContextMembers(nd, emitted); + continue; + } + } break; + case clang::Decl::Using: { + continue; + } break; + case clang::Decl::UsingDirective: { + continue; + } break; + default: + break; } // Queue this decl and print its id. - if(DumpId id = this->AddDeclDumpNode(d, true)) { + if (DumpId id = this->AddDeclDumpNode(d, true)) { emitted.insert(id); } } @@ -886,46 +963,49 @@ void ASTVisitor::AddDeclContextMembers(clang::DeclContext const* dc, void ASTVisitor::AddStartDecl(clang::Decl const* d) { switch (d->getKind()) { - case clang::Decl::ClassTemplate: - this->AddClassTemplateDecl( - static_cast(d)); - break; - case clang::Decl::FunctionTemplate: - this->AddFunctionTemplateDecl( - static_cast(d)); - break; - case clang::Decl::Namespace: { - if (!static_cast(d)->isInline()) { - this->AddDeclDumpNode(d, true); - } - } break; - case clang::Decl::Using: { + case clang::Decl::ClassTemplate: + this->AddClassTemplateDecl( + static_cast(d)); + break; + case clang::Decl::FunctionTemplate: + this->AddFunctionTemplateDecl( + static_cast(d)); + break; + case clang::Decl::Namespace: { + if (!static_cast(d)->isInline()) { + this->AddDeclDumpNode(d, true); + } + } break; + case clang::Decl::Using: { clang::UsingDecl const* ud = static_cast(d); - for(clang::UsingDecl::shadow_iterator i = ud->shadow_begin(), - e = ud->shadow_end(); i != e; ++i) { + for (clang::UsingDecl::shadow_iterator i = ud->shadow_begin(), + e = ud->shadow_end(); + i != e; ++i) { this->AddDeclDumpNode(*i, true); } - } break; - default: - this->AddDeclDumpNode(d, true); - break; + } break; + default: + this->AddDeclDumpNode(d, true); + break; } } void ASTVisitor::QueueIncompleteDumpNodes() { // Queue declaration nodes that do not need complete output. - for(DeclNodesMap::const_iterator i = this->DeclNodes.begin(), - e = this->DeclNodes.end(); i != e; ++i) { - if(!i->second.Complete) { + for (DeclNodesMap::const_iterator i = this->DeclNodes.begin(), + e = this->DeclNodes.end(); + i != e; ++i) { + if (!i->second.Complete) { this->Queue.insert(QueueEntry(i->first, &i->second)); } } // Queue type nodes that do not need complete output. - for(TypeNodesMap::const_iterator i = this->TypeNodes.begin(), - e = this->TypeNodes.end(); i != e; ++i) { - if(!i->second.Complete) { + for (TypeNodesMap::const_iterator i = this->TypeNodes.begin(), + e = this->TypeNodes.end(); + i != e; ++i) { + if (!i->second.Complete) { this->Queue.insert(QueueEntry(i->first, &i->second)); } } @@ -934,33 +1014,33 @@ void ASTVisitor::QueueIncompleteDumpNodes() void ASTVisitor::ProcessQueue() { // Dispatch each entry in the queue based on its node kind. - while(!this->Queue.empty()) { + while (!this->Queue.empty()) { QueueEntry qe = *this->Queue.begin(); this->Queue.erase(this->Queue.begin()); - switch(qe.Kind) { - case QueueEntry::KindQual: - this->OutputCvQualifiedType(qe.DN); - break; - case QueueEntry::KindDecl: - this->OutputDecl(qe.Decl, qe.DN); - break; - case QueueEntry::KindType: - this->OutputType(qe.Type, qe.DN); - break; + switch (qe.Kind) { + case QueueEntry::KindQual: + this->OutputCvQualifiedType(qe.DN); + break; + case QueueEntry::KindDecl: + this->OutputDecl(qe.Decl, qe.DN); + break; + case QueueEntry::KindType: + this->OutputType(qe.Type, qe.DN); + break; } } } void ASTVisitor::ProcessFileQueue() { - if(this->FileBuiltin) { + if (this->FileBuiltin) { /* clang-format off */ this->OS << " ") << "\"/>\n" ; /* clang-format on */ } - while(!this->FileQueue.empty()) { + while (!this->FileQueue.empty()) { clang::FileEntry const* f = this->FileQueue.front(); this->FileQueue.pop(); /* clang-format off */ @@ -979,10 +1059,9 @@ void ASTVisitor::OutputDecl(clang::Decl const* d, DumpNode const* dn) // Dispatch output of the declaration. switch (d->getKind()) { #define ABSTRACT_DECL(DECL) -#define DECL(CLASS, BASE) \ - case clang::Decl::CLASS: \ - this->Output##CLASS##Decl( \ - static_cast(d), dn); \ +#define DECL(CLASS, BASE) \ + case clang::Decl::CLASS: \ + this->Output##CLASS##Decl(static_cast(d), dn); \ break; #include "clang/AST/DeclNodes.inc" } @@ -993,18 +1072,18 @@ void ASTVisitor::OutputType(DumpType dt, DumpNode const* dn) clang::QualType t = dt.Type; clang::Type const* c = dt.Class; - if(c) { + if (c) { // Output the method type. this->OutputMethodType(t->getAs(), c, dn); } else { // Dispatch output of the unqualified type. switch (t->getTypeClass()) { #define ABSTRACT_TYPE(CLASS, BASE) -#define TYPE(CLASS, BASE) \ - case clang::Type::CLASS: \ - this->Output##CLASS##Type( \ - static_cast(t.getTypePtr()), dn); \ - break; +#define TYPE(CLASS, BASE) \ + case clang::Type::CLASS: \ + this->Output##CLASS##Type( \ + static_cast(t.getTypePtr()), dn); \ + break; #include "clang/AST/TypeNodes.def" } } @@ -1040,7 +1119,7 @@ ASTVisitor::DumpId ASTVisitor::GetContextIdRef(clang::DeclContext const* dc) dc = dc->getParent(); } - if(clang::Decl const* d = clang::dyn_cast(dc)) { + if (clang::Decl const* d = clang::dyn_cast(dc)) { return this->AddDeclDumpNode(d, false); } else { return DumpId(); @@ -1050,7 +1129,7 @@ ASTVisitor::DumpId ASTVisitor::GetContextIdRef(clang::DeclContext const* dc) std::string ASTVisitor::GetContextName(clang::CXXMethodDecl const* d) { clang::DeclContext const* dc = d->getDeclContext(); - if(clang::RecordDecl const* rd = clang::dyn_cast(dc)) { + if (clang::RecordDecl const* rd = clang::dyn_cast(dc)) { return rd->getName().str(); } return ""; @@ -1106,9 +1185,9 @@ void ASTVisitor::PrintOffsetAttribute(unsigned int const& offset) void ASTVisitor::PrintABIAttributes(clang::TypeDecl const* d) { - if(clang::TypeDecl const* td = clang::dyn_cast(d)) { + if (clang::TypeDecl const* td = clang::dyn_cast(d)) { clang::Type const* ty = td->getTypeForDecl(); - if(!ty->isIncompleteType()) { + if (!ty->isIncompleteType()) { this->PrintABIAttributes(this->CTX.getTypeInfo(ty)); } } @@ -1144,10 +1223,10 @@ void ASTVisitor::PrintReturnsAttribute(clang::QualType t, bool complete) void ASTVisitor::PrintLocationAttribute(clang::Decl const* d) { clang::SourceLocation sl = d->getLocation(); - if(sl.isValid()) { + if (sl.isValid()) { clang::FullSourceLoc fsl = this->CTX.getFullLoc(sl).getExpansionLoc(); if (clang::FileEntry const* f = - this->CI.getSourceManager().getFileEntryForID(fsl.getFileID())) { + this->CI.getSourceManager().getFileEntryForID(fsl.getFileID())) { unsigned int id = this->AddDumpFile(f); unsigned int line = fsl.getExpansionLineNumber(); /* clang-format off */ @@ -1159,7 +1238,7 @@ void ASTVisitor::PrintLocationAttribute(clang::Decl const* d) return; } } - if(d->isImplicit()) { + if (d->isImplicit()) { this->FileBuiltin = true; this->OS << " location=\"f0:0\" file=\"f0\" line=\"0\""; } @@ -1168,58 +1247,58 @@ void ASTVisitor::PrintLocationAttribute(clang::Decl const* d) bool ASTVisitor::PrintHelpStmt(clang::Stmt const* s, llvm::raw_ostream& os) { switch (s->getStmtClass()) { - case clang::Stmt::CStyleCastExprClass: { - // Duplicate clang::StmtPrinter::VisitCStyleCastExpr - // but with canonical type so we do not print an unqualified name. - clang::CStyleCastExpr const* e = - static_cast(s); - os << "("; - e->getTypeAsWritten().getCanonicalType().print(os, this->PrintingPolicy); - os << ")"; - PrinterHelper ph(*this); - e->getSubExpr()->printPretty(os, &ph, this->PrintingPolicy); - return true; - } break; - case clang::Stmt::CXXConstCastExprClass: // fallthrough - case clang::Stmt::CXXDynamicCastExprClass: // fallthrough - case clang::Stmt::CXXReinterpretCastExprClass: // fallthrough - case clang::Stmt::CXXStaticCastExprClass: { - // Duplicate clang::StmtPrinter::VisitCXXNamedCastExpr - // but with canonical type so we do not print an unqualified name. - clang::CXXNamedCastExpr const* e = - static_cast(s); - os << e->getCastName() << '<'; - e->getTypeAsWritten().getCanonicalType().print(os, this->PrintingPolicy); - os << ">("; - PrinterHelper ph(*this); - e->getSubExpr()->printPretty(os, &ph, this->PrintingPolicy); - os << ")"; - return true; - } break; - case clang::Stmt::DeclRefExprClass: { - // Print the fully qualified name of the referenced declaration. - clang::DeclRefExpr const* e = static_cast(s); - if (clang::NamedDecl const* d = - clang::dyn_cast(e->getDecl())) { - std::string s; - { - llvm::raw_string_ostream rso(s); - d->printQualifiedName(rso, this->PrintingPolicy); - rso.str(); - } - if (clang::isa(d)) { - // Clang does not exclude the "::" after an unnamed enum type. - std::string::size_type pos = s.find("::::"); - if (pos != s.npos) { - s.erase(pos, 2); + case clang::Stmt::CStyleCastExprClass: { + // Duplicate clang::StmtPrinter::VisitCStyleCastExpr + // but with canonical type so we do not print an unqualified name. + clang::CStyleCastExpr const* e = + static_cast(s); + os << "("; + e->getTypeAsWritten().getCanonicalType().print(os, this->PrintingPolicy); + os << ")"; + PrinterHelper ph(*this); + e->getSubExpr()->printPretty(os, &ph, this->PrintingPolicy); + return true; + } break; + case clang::Stmt::CXXConstCastExprClass: // fallthrough + case clang::Stmt::CXXDynamicCastExprClass: // fallthrough + case clang::Stmt::CXXReinterpretCastExprClass: // fallthrough + case clang::Stmt::CXXStaticCastExprClass: { + // Duplicate clang::StmtPrinter::VisitCXXNamedCastExpr + // but with canonical type so we do not print an unqualified name. + clang::CXXNamedCastExpr const* e = + static_cast(s); + os << e->getCastName() << '<'; + e->getTypeAsWritten().getCanonicalType().print(os, this->PrintingPolicy); + os << ">("; + PrinterHelper ph(*this); + e->getSubExpr()->printPretty(os, &ph, this->PrintingPolicy); + os << ")"; + return true; + } break; + case clang::Stmt::DeclRefExprClass: { + // Print the fully qualified name of the referenced declaration. + clang::DeclRefExpr const* e = static_cast(s); + if (clang::NamedDecl const* d = + clang::dyn_cast(e->getDecl())) { + std::string s; + { + llvm::raw_string_ostream rso(s); + d->printQualifiedName(rso, this->PrintingPolicy); + rso.str(); + } + if (clang::isa(d)) { + // Clang does not exclude the "::" after an unnamed enum type. + std::string::size_type pos = s.find("::::"); + if (pos != s.npos) { + s.erase(pos, 2); + } } + os << s; + return true; } - os << s; - return true; - } - } break; - default: - break; + } break; + default: + break; } return false; } @@ -1227,17 +1306,17 @@ bool ASTVisitor::PrintHelpStmt(clang::Stmt const* s, llvm::raw_ostream& os) void ASTVisitor::PrintAccessAttribute(clang::AccessSpecifier as) { switch (as) { - case clang::AS_private: - this->OS << " access=\"private\""; - break; - case clang::AS_protected: - this->OS << " access=\"protected\""; - break; - case clang::AS_public: - this->OS << " access=\"public\""; - break; - case clang::AS_none: - break; + case clang::AS_private: + this->OS << " access=\"private\""; + break; + case clang::AS_protected: + this->OS << " access=\"protected\""; + break; + case clang::AS_public: + this->OS << " access=\"public\""; + break; + case clang::AS_none: + break; } } @@ -1245,11 +1324,11 @@ void ASTVisitor::PrintContextAttribute(clang::Decl const* d, clang::AccessSpecifier alt) { clang::DeclContext const* dc = d->getDeclContext(); - if(DumpId id = this->GetContextIdRef(dc)) { + if (DumpId id = this->GetContextIdRef(dc)) { this->OS << " context=\"_" << id << "\""; if (dc->isRecord()) { clang::AccessSpecifier as = d->getAccess(); - this->PrintAccessAttribute(as != clang::AS_none? as : alt); + this->PrintAccessAttribute(as != clang::AS_none ? as : alt); } } } @@ -1263,11 +1342,12 @@ void ASTVisitor::PrintMembersAttribute(clang::DeclContext const* dc) void ASTVisitor::PrintMembersAttribute(std::set const& emitted) { - if(!emitted.empty()) { + if (!emitted.empty()) { this->OS << " members=\""; const char* sep = ""; - for(std::set::const_iterator i = emitted.begin(), - e = emitted.end(); i != e; ++i) { + for (std::set::const_iterator i = emitted.begin(), + e = emitted.end(); + i != e; ++i) { this->OS << sep << "_" << *i; sep = " "; } @@ -1279,14 +1359,20 @@ void ASTVisitor::PrintBasesAttribute(clang::CXXRecordDecl const* dx) { this->OS << " bases=\""; const char* sep = ""; - for(clang::CXXRecordDecl::base_class_const_iterator i = dx->bases_begin(), - e = dx->bases_end(); i != e; ++i) { + for (clang::CXXRecordDecl::base_class_const_iterator i = dx->bases_begin(), + e = dx->bases_end(); + i != e; ++i) { this->OS << sep; sep = " "; switch (i->getAccessSpecifier()) { - case clang::AS_private: this->OS << "private:"; break; - case clang::AS_protected: this->OS << "protected:"; break; - default: break; + case clang::AS_private: + this->OS << "private:"; + break; + case clang::AS_protected: + this->OS << "protected:"; + break; + default: + break; } this->PrintTypeIdRef(i->getType().getCanonicalType(), true); } @@ -1301,7 +1387,7 @@ void ASTVisitor::PrintAttributesAttribute( } this->OS << " attributes=\""; const char* sep = ""; - for (std::string const& a: attrs) { + for (std::string const& a : attrs) { this->OS << sep << encodeXML(a); sep = " "; } @@ -1319,26 +1405,26 @@ void ASTVisitor::GetFunctionTypeAttributes(clang::FunctionProtoType const* t, std::vector& attrs) { switch (t->getExtInfo().getCC()) { - case clang::CallingConv::CC_C: - break; - case clang::CallingConv::CC_X86StdCall: - attrs.push_back("__stdcall__"); - break; - case clang::CallingConv::CC_X86FastCall: - attrs.push_back("__fastcall__"); - break; - case clang::CallingConv::CC_X86ThisCall: - attrs.push_back("__thiscall__"); - break; - default: - break; + case clang::CallingConv::CC_C: + break; + case clang::CallingConv::CC_X86StdCall: + attrs.push_back("__stdcall__"); + break; + case clang::CallingConv::CC_X86FastCall: + attrs.push_back("__fastcall__"); + break; + case clang::CallingConv::CC_X86ThisCall: + attrs.push_back("__thiscall__"); + break; + default: + break; } } void ASTVisitor::GetDeclAttributes(clang::Decl const* d, std::vector& attrs) { - for (auto const* a: d->specific_attrs()) { + for (auto const* a : d->specific_attrs()) { attrs.push_back("annotate(" + a->getAnnotation().str() + ")"); } } @@ -1346,12 +1432,12 @@ void ASTVisitor::GetDeclAttributes(clang::Decl const* d, void ASTVisitor::PrintThrowsAttribute(clang::FunctionProtoType const* fpt, bool complete) { - if(fpt && fpt->hasDynamicExceptionSpec()) { + if (fpt && fpt->hasDynamicExceptionSpec()) { clang::FunctionProtoType::exception_iterator i = fpt->exception_begin(); clang::FunctionProtoType::exception_iterator e = fpt->exception_end(); this->OS << " throw=\""; const char* sep = ""; - for(;i != e; ++i) { + for (; i != e; ++i) { this->OS << sep; this->PrintTypeIdRef(*i, complete); sep = " "; @@ -1362,23 +1448,24 @@ void ASTVisitor::PrintThrowsAttribute(clang::FunctionProtoType const* fpt, void ASTVisitor::PrintBefriendingAttribute(clang::CXXRecordDecl const* dx) { - if(dx && dx->hasFriends()) { + if (dx && dx->hasFriends()) { this->OS << " befriending=\""; const char* sep = ""; - for(clang::CXXRecordDecl::friend_iterator i = dx->friend_begin(), - e = dx->friend_end(); i != e; ++i) { + for (clang::CXXRecordDecl::friend_iterator i = dx->friend_begin(), + e = dx->friend_end(); + i != e; ++i) { clang::FriendDecl const* fd = *i; - if(clang::NamedDecl const* nd = fd->getFriendDecl()) { - if(nd->isTemplateDecl()) { + if (clang::NamedDecl const* nd = fd->getFriendDecl()) { + if (nd->isTemplateDecl()) { // gccxml output format does not have uninstantiated templates continue; } - if(DumpId id = this->AddDeclDumpNode(nd, false)) { + if (DumpId id = this->AddDeclDumpNode(nd, false)) { this->OS << sep << "_" << id; sep = " "; } - } else if(clang::TypeSourceInfo const* tsi = fd->getFriendType()) { + } else if (clang::TypeSourceInfo const* tsi = fd->getFriendType()) { this->OS << sep; this->PrintTypeIdRef(tsi->getType(), false); sep = " "; @@ -1396,49 +1483,48 @@ void ASTVisitor::PrintFloat128Type(DumpNode const* dn) } void ASTVisitor::OutputFunctionHelper(clang::FunctionDecl const* d, - DumpNode const* dn, - const char* tag, + DumpNode const* dn, const char* tag, std::string const& name, unsigned int flags) { this->OS << " <" << tag; this->PrintIdAttribute(dn); - if(!name.empty()) { + if (!name.empty()) { this->PrintNameAttribute(name); } - if(flags & FH_Returns) { + if (flags & FH_Returns) { this->PrintReturnsAttribute(d->getReturnType(), dn->Complete); } this->PrintContextAttribute(d); this->PrintLocationAttribute(d); - if(flags & FH_Static) { + if (flags & FH_Static) { this->OS << " static=\"1\""; } - if(flags & FH_Explicit) { + if (flags & FH_Explicit) { this->OS << " explicit=\"1\""; } - if(flags & FH_Const) { + if (flags & FH_Const) { this->OS << " const=\"1\""; } - if(flags & FH_Virtual) { + if (flags & FH_Virtual) { this->OS << " virtual=\"1\""; } - if(flags & FH_Pure) { + if (flags & FH_Pure) { this->OS << " pure_virtual=\"1\""; } - if(d->isInlined()) { + if (d->isInlined()) { this->OS << " inline=\"1\""; } - if(d->getStorageClass() == clang::SC_Extern) { + if (d->getStorageClass() == clang::SC_Extern) { this->OS << " extern=\"1\""; } - if(d->isImplicit()) { + if (d->isImplicit()) { this->OS << " artificial=\"1\""; } if (clang::CXXMethodDecl const* md = - clang::dyn_cast(d)) { + clang::dyn_cast(d)) { if (md->size_overridden_methods() > 0) { this->OS << " overrides=\""; const char* sep = ""; @@ -1458,7 +1544,7 @@ void ASTVisitor::OutputFunctionHelper(clang::FunctionDecl const* d, std::vector attributes; if (clang::FunctionProtoType const* fpt = - d->getType()->getAs()) { + d->getType()->getAs()) { this->PrintThrowsAttribute(fpt, dn->Complete); if (!clang::isa(d) && !clang::isa(d)) { @@ -1470,7 +1556,7 @@ void ASTVisitor::OutputFunctionHelper(clang::FunctionDecl const* d, this->GetDeclAttributes(d, attributes); this->PrintAttributesAttribute(attributes); - if(unsigned np = d->getNumParams()) { + if (unsigned np = d->getNumParams()) { this->OS << ">\n"; for (unsigned i = 0; i < np; ++i) { // Use the default argument from the most recent declaration. @@ -1478,14 +1564,14 @@ void ASTVisitor::OutputFunctionHelper(clang::FunctionDecl const* d, // them all. clang::ParmVarDecl const* pd = d->getMostRecentDecl()->getParamDecl(i); clang::Expr const* def = pd->getInit(); - if(!def && pd->hasUninstantiatedDefaultArg()) { + if (!def && pd->hasUninstantiatedDefaultArg()) { def = pd->getUninstantiatedDefaultArg(); } // Use the parameter located in the canonical declaration. this->OutputFunctionArgument(d->getParamDecl(i), dn->Complete, def); } - if(d->isVariadic()) { + if (d->isVariadic()) { this->OS << " \n"; } this->OS << " \n"; @@ -1500,31 +1586,33 @@ void ASTVisitor::OutputFunctionTypeHelper(clang::FunctionProtoType const* t, { this->OS << " <" << tag; this->PrintIdAttribute(dn); - if(c) { + if (c) { this->PrintBaseTypeAttribute(c, dn->Complete); } this->PrintReturnsAttribute(t->getReturnType(), dn->Complete); - if(t->isConst()) { + if (t->isConst()) { this->OS << " const=\"1\""; } - if(t->isVolatile()) { + if (t->isVolatile()) { this->OS << " volatile=\"1\""; } - if(t->isRestrict()) { + if (t->isRestrict()) { this->OS << " restrict=\"1\""; } std::vector attributes; this->GetFunctionTypeAttributes(t, attributes); this->PrintAttributesAttribute(attributes); - if(t->param_type_begin() != t->param_type_end()) { + if (t->param_type_begin() != t->param_type_end()) { this->OS << ">\n"; for (clang::FunctionProtoType::param_type_iterator - i = t->param_type_begin(), e = t->param_type_end(); i != e; ++i) { + i = t->param_type_begin(), + e = t->param_type_end(); + i != e; ++i) { this->OS << " PrintTypeAttribute(*i, dn->Complete); this->OS << "/>\n"; } - if(t->isVariadic()) { + if (t->isVariadic()) { this->OS << " \n"; } this->OS << " \n"; @@ -1538,12 +1626,12 @@ void ASTVisitor::OutputFunctionArgument(clang::ParmVarDecl const* a, { this->OS << " getName().str(); - if(!name.empty()) { + if (!name.empty()) { this->PrintNameAttribute(name); } this->PrintTypeAttribute(a->getType(), complete); this->PrintLocationAttribute(a); - if(def) { + if (def) { this->OS << " default=\""; std::string s; llvm::raw_string_ostream rso(s); @@ -1556,20 +1644,20 @@ void ASTVisitor::OutputFunctionArgument(clang::ParmVarDecl const* a, this->OS << "/>\n"; } -void ASTVisitor::OutputTranslationUnitDecl( - clang::TranslationUnitDecl const* d, DumpNode const* dn) +void ASTVisitor::OutputTranslationUnitDecl(clang::TranslationUnitDecl const* d, + DumpNode const* dn) { this->OS << " PrintIdAttribute(dn); this->PrintNameAttribute("::"); - if(dn->Complete) { + if (dn->Complete) { this->PrintMembersAttribute(d); } this->OS << "/>\n"; } -void ASTVisitor::OutputNamespaceDecl( - clang::NamespaceDecl const* d, DumpNode const* dn) +void ASTVisitor::OutputNamespaceDecl(clang::NamespaceDecl const* d, + DumpNode const* dn) { this->OS << " PrintIdAttribute(dn); @@ -1578,9 +1666,9 @@ void ASTVisitor::OutputNamespaceDecl( this->PrintNameAttribute(name); } this->PrintContextAttribute(d); - if(dn->Complete) { + if (dn->Complete) { std::set emitted; - for (clang::NamespaceDecl const* r: d->redecls()) { + for (clang::NamespaceDecl const* r : d->redecls()) { this->AddDeclContextMembers(r, emitted); } this->PrintMembersAttribute(emitted); @@ -1593,18 +1681,26 @@ void ASTVisitor::OutputRecordDecl(clang::RecordDecl const* d, { const char* tag; switch (d->getTagKind()) { - case clang::TTK_Class: tag = "Class"; break; - case clang::TTK_Union: tag = "Union"; break; - case clang::TTK_Struct: tag = "Struct"; break; - case clang::TTK_Interface: return; - case clang::TTK_Enum: return; + case clang::TTK_Class: + tag = "Class"; + break; + case clang::TTK_Union: + tag = "Union"; + break; + case clang::TTK_Struct: + tag = "Struct"; + break; + case clang::TTK_Interface: + return; + case clang::TTK_Enum: + return; } clang::CXXRecordDecl const* dx = clang::dyn_cast(d); bool doBases = false; this->OS << " <" << tag; this->PrintIdAttribute(dn); - if(!d->isAnonymousStructOrUnion()) { + if (!d->isAnonymousStructOrUnion()) { std::string s; llvm::raw_string_ostream rso(s); d->getNameForDiagnostic(rso, this->PrintingPolicy, false); @@ -1612,24 +1708,23 @@ void ASTVisitor::OutputRecordDecl(clang::RecordDecl const* d, } clang::AccessSpecifier access = clang::AS_none; if (clang::ClassTemplateSpecializationDecl const* dxts = - clang::dyn_cast(d)) { + clang::dyn_cast(d)) { // This is a template instantiation so get the access of the original // template. Access of the instantiation itself has no meaning. - if (clang::ClassTemplateDecl const* dxt = - dxts->getSpecializedTemplate()) { + if (clang::ClassTemplateDecl const* dxt = dxts->getSpecializedTemplate()) { access = dxt->getAccess(); } } this->PrintContextAttribute(d, access); this->PrintLocationAttribute(d); - if(d->getDefinition()) { - if(dx && dx->isAbstract()) { + if (d->getDefinition()) { + if (dx && dx->isAbstract()) { this->OS << " abstract=\"1\""; } if (dn->Complete && !d->isInvalidDecl()) { this->PrintMembersAttribute(d); doBases = dx && dx->getNumBases(); - if(doBases) { + if (doBases) { this->PrintBasesAttribute(dx); } this->PrintBefriendingAttribute(dx); @@ -1639,21 +1734,22 @@ void ASTVisitor::OutputRecordDecl(clang::RecordDecl const* d, } this->PrintABIAttributes(d); this->PrintAttributesAttribute(d); - if(doBases) { + if (doBases) { this->OS << ">\n"; clang::ASTRecordLayout const& layout = this->CTX.getASTRecordLayout(dx); - for(clang::CXXRecordDecl::base_class_const_iterator i = dx->bases_begin(), - e = dx->bases_end(); i != e; ++i) { + for (clang::CXXRecordDecl::base_class_const_iterator i = dx->bases_begin(), + e = dx->bases_end(); + i != e; ++i) { clang::QualType bt = i->getType().getCanonicalType(); clang::CXXRecordDecl const* bd = clang::dyn_cast( bt->getAs()->getDecl()); this->OS << " PrintTypeAttribute(bt, true); this->PrintAccessAttribute(i->getAccessSpecifier()); - this->OS << " virtual=\"" << (i->isVirtual()? 1 : 0) << "\""; + this->OS << " virtual=\"" << (i->isVirtual() ? 1 : 0) << "\""; if (bd && !i->isVirtual()) { - this->OS << " offset=\"" << - layout.getBaseClassOffset(bd).getQuantity() << "\""; + this->OS << " offset=\"" << layout.getBaseClassOffset(bd).getQuantity() + << "\""; } this->OS << "/>\n"; } @@ -1666,7 +1762,7 @@ void ASTVisitor::OutputRecordDecl(clang::RecordDecl const* d, void ASTVisitor::OutputCXXRecordDecl(clang::CXXRecordDecl const* d, DumpNode const* dn) { - if(d->getDescribedClassTemplate()) { + if (d->getDescribedClassTemplate()) { // We do not implement class template output yet. this->ASTVisitorBase::OutputCXXRecordDecl(d, dn); return; @@ -1713,8 +1809,8 @@ void ASTVisitor::OutputEnumDecl(clang::EnumDecl const* d, DumpNode const* dn) this->OS << " PrintIdAttribute(dn); std::string name = d->getName().str(); - if(name.empty()) { - if(clang::TypedefNameDecl const* td = d->getTypedefNameForAnonDecl()) { + if (name.empty()) { + if (clang::TypedefNameDecl const* td = d->getTypedefNameForAnonDecl()) { name = td->getName().str(); } } @@ -1724,10 +1820,10 @@ void ASTVisitor::OutputEnumDecl(clang::EnumDecl const* d, DumpNode const* dn) this->PrintAttributesAttribute(d); clang::EnumDecl::enumerator_iterator enum_begin = d->enumerator_begin(); clang::EnumDecl::enumerator_iterator enum_end = d->enumerator_end(); - if(enum_begin != enum_end) { + if (enum_begin != enum_end) { this->OS << ">\n"; - for(clang::EnumDecl::enumerator_iterator i = enum_begin; - i != enum_end; ++i) { + for (clang::EnumDecl::enumerator_iterator i = enum_begin; i != enum_end; + ++i) { clang::EnumConstantDecl const* ecd = *i; this->OS << " PrintNameAttribute(ecd->getName()); @@ -1747,14 +1843,14 @@ void ASTVisitor::OutputFieldDecl(clang::FieldDecl const* d, DumpNode const* dn) this->PrintIdAttribute(dn); this->PrintNameAttribute(d->getName().str()); this->PrintTypeAttribute(d->getType(), dn->Complete); - if(d->isBitField()) { + if (d->isBitField()) { unsigned bits = d->getBitWidthValue(this->CTX); this->OS << " bits=\"" << bits << "\""; } this->PrintContextAttribute(d); this->PrintLocationAttribute(d); this->PrintOffsetAttribute(this->CTX.getFieldOffset(d)); - if(d->isMutable()) { + if (d->isMutable()) { this->OS << " mutable=\"1\""; } this->PrintAttributesAttribute(d); @@ -1768,7 +1864,7 @@ void ASTVisitor::OutputVarDecl(clang::VarDecl const* d, DumpNode const* dn) this->PrintIdAttribute(dn); this->PrintNameAttribute(d->getName().str()); this->PrintTypeAttribute(d->getType(), dn->Complete); - if(clang::Expr const* init = d->getInit()) { + if (clang::Expr const* init = d->getInit()) { this->OS << " init=\""; std::string s; llvm::raw_string_ostream rso(s); @@ -1779,10 +1875,10 @@ void ASTVisitor::OutputVarDecl(clang::VarDecl const* d, DumpNode const* dn) } this->PrintContextAttribute(d); this->PrintLocationAttribute(d); - if(d->getStorageClass() == clang::SC_Static) { + if (d->getStorageClass() == clang::SC_Static) { this->OS << " static=\"1\""; } - if(d->getStorageClass() == clang::SC_Extern) { + if (d->getStorageClass() == clang::SC_Extern) { this->OS << " extern=\"1\""; } this->PrintMangledAttribute(d); @@ -1794,18 +1890,19 @@ void ASTVisitor::OutputVarDecl(clang::VarDecl const* d, DumpNode const* dn) void ASTVisitor::OutputFunctionDecl(clang::FunctionDecl const* d, DumpNode const* dn) { - if(d->getDescribedFunctionTemplate()) { + if (d->getDescribedFunctionTemplate()) { // We do not implement function template output yet. this->ASTVisitorBase::OutputFunctionDecl(d, dn); return; } unsigned int flags = FH_Returns; - if(d->getStorageClass() == clang::SC_Static) { + if (d->getStorageClass() == clang::SC_Static) { flags |= FH_Static; } - if(d->isOverloadedOperator()) { - this->OutputFunctionHelper(d, dn, "OperatorFunction", + if (d->isOverloadedOperator()) { + this->OutputFunctionHelper( + d, dn, "OperatorFunction", clang::getOperatorSpelling(d->getOverloadedOperator()), flags); } else if (clang::IdentifierInfo const* ii = d->getIdentifier()) { this->OutputFunctionHelper(d, dn, "Function", ii->getName().str(), flags); @@ -1817,27 +1914,28 @@ void ASTVisitor::OutputFunctionDecl(clang::FunctionDecl const* d, void ASTVisitor::OutputCXXMethodDecl(clang::CXXMethodDecl const* d, DumpNode const* dn) { - if(d->getDescribedFunctionTemplate()) { + if (d->getDescribedFunctionTemplate()) { // We do not implement function template output yet. this->ASTVisitorBase::OutputCXXMethodDecl(d, dn); return; } unsigned int flags = FH_Returns; - if(d->isStatic()) { + if (d->isStatic()) { flags |= FH_Static; } - if(d->isConst()) { + if (d->isConst()) { flags |= FH_Const; } - if(d->isVirtual()) { + if (d->isVirtual()) { flags |= FH_Virtual; } - if(d->isPure()) { + if (d->isPure()) { flags |= FH_Pure; } - if(d->isOverloadedOperator()) { - this->OutputFunctionHelper(d, dn, "OperatorMethod", + if (d->isOverloadedOperator()) { + this->OutputFunctionHelper( + d, dn, "OperatorMethod", clang::getOperatorSpelling(d->getOverloadedOperator()), flags); } else if (clang::IdentifierInfo const* ii = d->getIdentifier()) { this->OutputFunctionHelper(d, dn, "Method", ii->getName().str(), flags); @@ -1849,20 +1947,20 @@ void ASTVisitor::OutputCXXMethodDecl(clang::CXXMethodDecl const* d, void ASTVisitor::OutputCXXConversionDecl(clang::CXXConversionDecl const* d, DumpNode const* dn) { - if(d->getDescribedFunctionTemplate()) { + if (d->getDescribedFunctionTemplate()) { // We do not implement function template output yet. this->ASTVisitorBase::OutputCXXConversionDecl(d, dn); return; } unsigned int flags = FH_Returns; - if(d->isConst()) { + if (d->isConst()) { flags |= FH_Const; } - if(d->isVirtual()) { + if (d->isVirtual()) { flags |= FH_Virtual; } - if(d->isPure()) { + if (d->isPure()) { flags |= FH_Pure; } this->OutputFunctionHelper(d, dn, "Converter", "", flags); @@ -1871,38 +1969,38 @@ void ASTVisitor::OutputCXXConversionDecl(clang::CXXConversionDecl const* d, void ASTVisitor::OutputCXXConstructorDecl(clang::CXXConstructorDecl const* d, DumpNode const* dn) { - if(d->getDescribedFunctionTemplate()) { + if (d->getDescribedFunctionTemplate()) { // We do not implement function template output yet. this->ASTVisitorBase::OutputCXXConstructorDecl(d, dn); return; } unsigned int flags = 0; - if(d->isExplicit()) { + if (d->isExplicit()) { flags |= FH_Explicit; } - this->OutputFunctionHelper(d, dn, "Constructor", - this->GetContextName(d), flags); + this->OutputFunctionHelper(d, dn, "Constructor", this->GetContextName(d), + flags); } void ASTVisitor::OutputCXXDestructorDecl(clang::CXXDestructorDecl const* d, DumpNode const* dn) { - if(d->getDescribedFunctionTemplate()) { + if (d->getDescribedFunctionTemplate()) { // We do not implement function template output yet. this->ASTVisitorBase::OutputCXXDestructorDecl(d, dn); return; } unsigned int flags = 0; - if(d->isVirtual()) { + if (d->isVirtual()) { flags |= FH_Virtual; } - if(d->isPure()) { + if (d->isPure()) { flags |= FH_Pure; } - this->OutputFunctionHelper(d, dn, "Destructor", - this->GetContextName(d), flags); + this->OutputFunctionHelper(d, dn, "Destructor", this->GetContextName(d), + flags); } void ASTVisitor::OutputBuiltinType(clang::BuiltinType const* t, @@ -1914,13 +2012,27 @@ void ASTVisitor::OutputBuiltinType(clang::BuiltinType const* t, // gccxml used different name variants than Clang for some types std::string name; switch (t->getKind()) { - case clang::BuiltinType::Short: name = "short int"; break; - case clang::BuiltinType::UShort: name = "short unsigned int"; break; - case clang::BuiltinType::Long: name = "long int"; break; - case clang::BuiltinType::ULong: name = "long unsigned int"; break; - case clang::BuiltinType::LongLong: name = "long long int"; break; - case clang::BuiltinType::ULongLong: name = "long long unsigned int"; break; - default: name = t->getName(this->PrintingPolicy).str(); break; + case clang::BuiltinType::Short: + name = "short int"; + break; + case clang::BuiltinType::UShort: + name = "short unsigned int"; + break; + case clang::BuiltinType::Long: + name = "long int"; + break; + case clang::BuiltinType::ULong: + name = "long unsigned int"; + break; + case clang::BuiltinType::LongLong: + name = "long long int"; + break; + case clang::BuiltinType::ULongLong: + name = "long long unsigned int"; + break; + default: + name = t->getName(this->PrintingPolicy).str(); + break; }; this->PrintNameAttribute(name); this->PrintABIAttributes(this->CTX.getTypeInfo(t)); @@ -1933,7 +2045,7 @@ void ASTVisitor::OutputConstantArrayType(clang::ConstantArrayType const* t, { this->OS << " PrintIdAttribute(dn); - this->OS << " min=\"0\" max=\"" << (t->getSize()-1) << "\""; + this->OS << " min=\"0\" max=\"" << (t->getSize() - 1) << "\""; this->PrintTypeAttribute(t->getElementType(), dn->Complete); this->OS << "/>\n"; } @@ -1966,7 +2078,7 @@ void ASTVisitor::OutputLValueReferenceType(clang::LValueReferenceType const* t, void ASTVisitor::OutputMemberPointerType(clang::MemberPointerType const* t, DumpNode const* dn) { - if(t->isMemberDataPointerType()) { + if (t->isMemberDataPointerType()) { this->OutputOffsetType(t->getPointeeType(), t->getClass(), dn); } else { this->OS << " lookup(clang::DeclarationName(&ids.get(cur))); - if(pos == name.npos) { - for (clang::NamedDecl const* n: result) { + if (pos == name.npos) { + for (clang::NamedDecl const* n : result) { this->AddStartDecl(n); } } else { - std::string rest = name.substr(pos+2); - for (clang::NamedDecl const* n: result) { + std::string rest = name.substr(pos + 2); + for (clang::NamedDecl const* n : result) { if (clang::DeclContext const* idc = - clang::dyn_cast(n)) { + clang::dyn_cast(n)) { this->LookupStart(idc, rest); } } @@ -2033,11 +2145,12 @@ void ASTVisitor::LookupStart(clang::DeclContext const* dc, void ASTVisitor::HandleTranslationUnit(clang::TranslationUnitDecl const* tu) { // Add the starting nodes for the dump. - if(!this->Opts.StartNames.empty()) { + if (!this->Opts.StartNames.empty()) { // Use the specified starting locations. - for(std::vector::const_iterator - i = this->Opts.StartNames.begin(), e = this->Opts.StartNames.end(); - i != e; ++i) { + for (std::vector::const_iterator + i = this->Opts.StartNames.begin(), + e = this->Opts.StartNames.end(); + i != e; ++i) { this->LookupStart(tu, *i); } } else { @@ -2074,10 +2187,8 @@ void ASTVisitor::HandleTranslationUnit(clang::TranslationUnitDecl const* tu) /* clang-format on */ } -void outputXML(clang::CompilerInstance& ci, - clang::ASTContext& ctx, - llvm::raw_ostream& os, - Options const& opts) +void outputXML(clang::CompilerInstance& ci, clang::ASTContext& ctx, + llvm::raw_ostream& os, Options const& opts) { ASTVisitor v(ci, ctx, os, opts); v.HandleTranslationUnit(ctx.getTranslationUnitDecl()); diff --git a/src/Output.h b/src/Output.h index 9df6391..db1982b 100644 --- a/src/Output.h +++ b/src/Output.h @@ -19,20 +19,18 @@ #include namespace llvm { - class raw_ostream; +class raw_ostream; } namespace clang { - class CompilerInstance; - class ASTContext; +class CompilerInstance; +class ASTContext; } struct Options; /// outputXML - Print a gccxml-compatible AST dump. -void outputXML(clang::CompilerInstance& ci, - clang::ASTContext& ctx, - llvm::raw_ostream& os, - Options const& opts); +void outputXML(clang::CompilerInstance& ci, clang::ASTContext& ctx, + llvm::raw_ostream& os, Options const& opts); #endif // CASTXML_OUTPUT_H diff --git a/src/RunClang.cxx b/src/RunClang.cxx index 1bc62dd..a1d67cf 100644 --- a/src/RunClang.cxx +++ b/src/RunClang.cxx @@ -50,12 +50,12 @@ #include #include -#if LLVM_VERSION_MAJOR > 3 \ - || LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 9 -# define CASTXML_OWNS_OSTREAM +#if LLVM_VERSION_MAJOR > 3 || \ + LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 9 +#define CASTXML_OWNS_OSTREAM #endif -class ASTConsumer: public clang::ASTConsumer +class ASTConsumer : public clang::ASTConsumer { clang::CompilerInstance& CI; #ifdef CASTXML_OWNS_OSTREAM @@ -63,47 +63,63 @@ class ASTConsumer: public clang::ASTConsumer #endif llvm::raw_ostream& OS; Options const& Opts; - struct Class { + struct Class + { clang::CXXRecordDecl* RD; int Depth; - Class(clang::CXXRecordDecl* rd, int depth): RD(rd), Depth(depth) {} + Class(clang::CXXRecordDecl* rd, int depth) + : RD(rd) + , Depth(depth) + { + } }; std::queue Classes; int ClassImplicitMemberDepth = 0; + public: #ifdef CASTXML_OWNS_OSTREAM ASTConsumer(clang::CompilerInstance& ci, - std::unique_ptr os, Options const& opts): - CI(ci), OwnOS(std::move(os)), OS(*OwnOS), Opts(opts) {} + std::unique_ptr os, Options const& opts) + : CI(ci) + , OwnOS(std::move(os)) + , OS(*OwnOS) + , Opts(opts) + { + } #else ASTConsumer(clang::CompilerInstance& ci, llvm::raw_ostream& os, - Options const& opts): - CI(ci), OS(os), Opts(opts) {} + Options const& opts) + : CI(ci) + , OS(os) + , Opts(opts) + { + } #endif - void AddImplicitMembers(Class const& c) { + void AddImplicitMembers(Class const& c) + { clang::CXXRecordDecl* rd = c.RD; this->ClassImplicitMemberDepth = c.Depth + 1; clang::Sema& sema = this->CI.getSema(); sema.ForceDeclarationOfImplicitMembers(rd); - for(clang::DeclContext::decl_iterator i = rd->decls_begin(), - e = rd->decls_end(); i != e; ++i) { + for (clang::DeclContext::decl_iterator i = rd->decls_begin(), + e = rd->decls_end(); + i != e; ++i) { clang::CXXMethodDecl* m = clang::dyn_cast(*i); - if(m && !m->isDeleted() && !m->isInvalidDecl()) { + if (m && !m->isDeleted() && !m->isInvalidDecl()) { bool mark = false; clang::CXXConstructorDecl* c = - clang::dyn_cast(m); + clang::dyn_cast(m); if (c) { - mark = (c->isDefaultConstructor() || - c->isCopyConstructor() || + mark = (c->isDefaultConstructor() || c->isCopyConstructor() || c->isMoveConstructor()); } else if (clang::dyn_cast(m)) { mark = true; } else { - mark = (m->isCopyAssignmentOperator() || - m->isMoveAssignmentOperator()); + mark = + (m->isCopyAssignmentOperator() || m->isMoveAssignmentOperator()); } if (mark) { /* Ensure the member is defined. */ @@ -122,9 +138,10 @@ public: } } - void HandleTagDeclDefinition(clang::TagDecl* d) { - if(clang::CXXRecordDecl* rd = clang::dyn_cast(d)) { - if(!rd->isDependentContext()) { + void HandleTagDeclDefinition(clang::TagDecl* d) + { + if (clang::CXXRecordDecl* rd = clang::dyn_cast(d)) { + if (!rd->isDependentContext()) { if (this->ClassImplicitMemberDepth < 16) { this->Classes.push(Class(rd, this->ClassImplicitMemberDepth)); } @@ -132,7 +149,8 @@ public: } } - void HandleTranslationUnit(clang::ASTContext& ctx) { + void HandleTranslationUnit(clang::ASTContext& ctx) + { clang::Sema& sema = this->CI.getSema(); // Perform instantiations needed by the original translation unit. @@ -159,13 +177,17 @@ public: }; template -class CastXMLPredefines: public T +class CastXMLPredefines : public T { protected: Options const& Opts; - CastXMLPredefines(Options const& opts): Opts(opts) {} - std::string UpdatePredefines(clang::CompilerInstance const& CI) { + CastXMLPredefines(Options const& opts) + : Opts(opts) + { + } + std::string UpdatePredefines(clang::CompilerInstance const& CI) + { std::string const& predefines = CI.getPreprocessor().getPredefines(); // Identify the portion of the predefines string corresponding to @@ -175,7 +197,7 @@ protected: std::string::size_type start = predefines.find(predef_start); std::string::size_type end = std::string::npos; if (start != std::string::npos) { - start += sizeof(predef_start)-1; + start += sizeof(predef_start) - 1; end = predefines.find(predef_end, start); if (end == std::string::npos) { end = predefines.size(); @@ -193,15 +215,19 @@ protected: builtins += #define STR(x) STR_(x) #define STR_(x) #x - "#define __castxml_clang_major__ " STR(CLANG_VERSION_MAJOR) "\n" - "#define __castxml_clang_minor__ " STR(CLANG_VERSION_MINOR) "\n" - "#define __castxml_clang_patchlevel__ " + "#define __castxml_clang_major__ " STR( + CLANG_VERSION_MAJOR) "\n" + "#define __castxml_clang_minor__ " STR( + CLANG_VERSION_MINOR) "\n" + "#define " + "__castxml_clang_" + "patchlevel__ " #ifdef CLANG_VERSION_PATCHLEVEL STR(CLANG_VERSION_PATCHLEVEL) #else - "0" + "0" #endif - "\n" + "\n" #undef STR #undef STR_ ; @@ -215,9 +241,8 @@ protected: // Clang does not support this builtin, so fake it to tolerate // uses in function bodies while parsing. builtins += "\n" - "#define __builtin_va_arg_pack() 0\n" - "#define __builtin_va_arg_pack_len() 1\n" - ; + "#define __builtin_va_arg_pack() 0\n" + "#define __builtin_va_arg_pack_len() 1\n"; } // Provide __float128 if simulating the actual GNU compiler. @@ -226,11 +251,10 @@ protected: // diagnostics when it is used in some contexts. Provide our own // approximation of the builtin instead. builtins += "\n" - "typedef struct __castxml__float128_s { " - " char x[16] __attribute__((aligned(16))); " - "} __castxml__float128;\n" - "#define __float128 __castxml__float128\n" - ; + "typedef struct __castxml__float128_s { " + " char x[16] __attribute__((aligned(16))); " + "} __castxml__float128;\n" + "#define __float128 __castxml__float128\n"; } // Provide __is_assignable builtin if simulating MSVC. @@ -238,7 +262,8 @@ protected: // we can skip this when built against such a Clang. if (CI.getLangOpts().MSCompatibilityVersion >= 190000000 && CI.getLangOpts().CPlusPlus11) { - builtins += "\n" + builtins += + "\n" "template T&& __castxml__declval() noexcept;\n" "template () = __castxml__declval())>\n" @@ -247,16 +272,15 @@ protected: " static char (&__castxml__is_assignable_check(...))[2];\n" "#define __is_assignable(_To,_Fr) \\\n" " (sizeof(__castxml__is_assignable_check<_To,_Fr>(0)) == \\\n" - " sizeof(char(&)[1]))\n" - ; + " sizeof(char(&)[1]))\n"; } -#if LLVM_VERSION_MAJOR < 3 \ - || LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 8 +#if LLVM_VERSION_MAJOR < 3 || LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 8 // Clang 3.8 and above provide a __make_integer_seq builtin needed // in C++14 mode. Provide it ourselves for older Clang versions. if (CI.getLangOpts().CPlusPlus14) { - builtins += "\n" + builtins += + "\n" "template struct __castxml__integral_constant;\n" "template class _S,\n" " typename, typename, bool>\n" @@ -282,25 +306,24 @@ protected: " __castxml__make_integer_seq_impl<_S,\n" " __castxml__integral_constant<_T, _Sz>,\n" " _S<_T>, (_Sz>=0)>::type;\n" - "#define __make_integer_seq __castxml__make_integer_seq\n" - ; + "#define __make_integer_seq __castxml__make_integer_seq\n"; } #endif // Prevent glibc use of a GNU extension not implemented by Clang. if (this->NeedNoMathInlines(this->Opts.Predefines)) { builtins += "\n" - "#define __NO_MATH_INLINES 1\n" - ; + "#define __NO_MATH_INLINES 1\n"; } } else { - builtins += predefines.substr(start, end-start); + builtins += predefines.substr(start, end - start); } return predefines.substr(0, start) + builtins + predefines.substr(end); } - bool IsActualGNU(std::string const& pd) const { + bool IsActualGNU(std::string const& pd) const + { return (pd.find("#define __GNUC__ ") != pd.npos && pd.find("#define __clang__ ") == pd.npos && pd.find("#define __INTEL_COMPILER ") == pd.npos && @@ -308,18 +331,21 @@ protected: pd.find("#define __PGI ") == pd.npos); } - bool NeedBuiltinVarArgPack(std::string const& pd) { + bool NeedBuiltinVarArgPack(std::string const& pd) + { return this->IsActualGNU(pd); } - bool NeedFloat128(std::string const& pd) const { + bool NeedFloat128(std::string const& pd) const + { return (this->IsActualGNU(pd) && (pd.find("#define __i386__ ") != pd.npos || pd.find("#define __x86_64__ ") != pd.npos || pd.find("#define __ia64__ ") != pd.npos)); } - bool NeedNoMathInlines(std::string const& pd) const { + bool NeedNoMathInlines(std::string const& pd) const + { return (this->IsActualGNU(pd) && (pd.find("#define __i386__ ") != pd.npos && pd.find("#define __OPTIMIZE__ ") != pd.npos && @@ -327,7 +353,8 @@ protected: } bool BeginSourceFileAction(clang::CompilerInstance& CI, - llvm::StringRef /*Filename*/) { + llvm::StringRef /*Filename*/) + { CI.getPreprocessor().setPredefines(this->UpdatePredefines(CI)); // Tell Clang not to tear down the parser at EOF. @@ -337,54 +364,59 @@ protected: } }; -class CastXMLPrintPreprocessedAction: - public CastXMLPredefines +class CastXMLPrintPreprocessedAction + : public CastXMLPredefines { public: - CastXMLPrintPreprocessedAction(Options const& opts): - CastXMLPredefines(opts) {} + CastXMLPrintPreprocessedAction(Options const& opts) + : CastXMLPredefines(opts) + { + } }; -class CastXMLSyntaxOnlyAction: - public CastXMLPredefines +class CastXMLSyntaxOnlyAction + : public CastXMLPredefines { - std::unique_ptr - CreateASTConsumer(clang::CompilerInstance &CI, - llvm::StringRef InFile) override { + std::unique_ptr CreateASTConsumer( + clang::CompilerInstance& CI, llvm::StringRef InFile) override + { using llvm::sys::path::filename; - if(!this->Opts.GccXml) { + if (!this->Opts.GccXml) { return clang::SyntaxOnlyAction::CreateASTConsumer(CI, InFile); #ifdef CASTXML_OWNS_OSTREAM - } else if(std::unique_ptr OS = - CI.createDefaultOutputFile(false, filename(InFile), "xml")) { + } else if (std::unique_ptr OS = + CI.createDefaultOutputFile(false, filename(InFile), "xml")) { return llvm::make_unique(CI, std::move(OS), this->Opts); #else - } else if(llvm::raw_ostream* OS = - CI.createDefaultOutputFile(false, filename(InFile), "xml")) { + } else if (llvm::raw_ostream* OS = + CI.createDefaultOutputFile(false, filename(InFile), "xml")) { return llvm::make_unique(CI, *OS, this->Opts); #endif } else { return nullptr; } } + public: - CastXMLSyntaxOnlyAction(Options const& opts): - CastXMLPredefines(opts) {} + CastXMLSyntaxOnlyAction(Options const& opts) + : CastXMLPredefines(opts) + { + } }; -static clang::FrontendAction* -CreateFrontendAction(clang::CompilerInstance* CI, Options const& opts) +static clang::FrontendAction* CreateFrontendAction(clang::CompilerInstance* CI, + Options const& opts) { clang::frontend::ActionKind action = CI->getInvocation().getFrontendOpts().ProgramAction; - switch(action) { - case clang::frontend::PrintPreprocessedInput: - return new CastXMLPrintPreprocessedAction(opts); - case clang::frontend::ParseSyntaxOnly: - return new CastXMLSyntaxOnlyAction(opts); - default: - std::cerr << "error: unsupported action: " << int(action) << "\n"; - return nullptr; + switch (action) { + case clang::frontend::PrintPreprocessedInput: + return new CastXMLPrintPreprocessedAction(opts); + case clang::frontend::ParseSyntaxOnly: + return new CastXMLSyntaxOnlyAction(opts); + default: + std::cerr << "error: unsupported action: " << int(action) << "\n"; + return nullptr; } } @@ -392,28 +424,28 @@ static bool runClangCI(clang::CompilerInstance* CI, Options const& opts) { // Create a diagnostics engine for this compiler instance. CI->createDiagnostics(); - if(!CI->hasDiagnostics()) { + if (!CI->hasDiagnostics()) { return false; } // Set frontend options we captured directly. CI->getFrontendOpts().OutputFile = opts.OutputFile; - if(opts.GccXml) { -# define MSG(x) "error: '--castxml-gccxml' does not work with " x "\n" - if(CI->getLangOpts().ObjC1 || CI->getLangOpts().ObjC2) { + if (opts.GccXml) { +#define MSG(x) "error: '--castxml-gccxml' does not work with " x "\n" + if (CI->getLangOpts().ObjC1 || CI->getLangOpts().ObjC2) { std::cerr << MSG("Objective C"); return false; } -# undef MSG +#undef MSG } // Construct our Clang front-end action. This dispatches // handling of each input file with an action based on the // flags provided (e.g. -E to preprocess-only). - std::unique_ptr - action(CreateFrontendAction(CI, opts)); - if(action) { + std::unique_ptr action( + CreateFrontendAction(CI, opts)); + if (action) { return CI->ExecuteAction(*action); } else { return false; @@ -423,34 +455,32 @@ static bool runClangCI(clang::CompilerInstance* CI, Options const& opts) static llvm::IntrusiveRefCntPtr runClangCreateDiagnostics(const char* const* argBeg, const char* const* argEnd) { - llvm::IntrusiveRefCntPtr - diagOpts(new clang::DiagnosticOptions); - llvm::IntrusiveRefCntPtr - diagID(new clang::DiagnosticIDs()); - std::unique_ptr - opts(clang::driver::createDriverOptTable()); + llvm::IntrusiveRefCntPtr diagOpts( + new clang::DiagnosticOptions); + llvm::IntrusiveRefCntPtr diagID( + new clang::DiagnosticIDs()); + std::unique_ptr opts( + clang::driver::createDriverOptTable()); unsigned missingArgIndex, missingArgCount; -#if LLVM_VERSION_MAJOR > 3 \ - || LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7 - llvm::opt::InputArgList - args(opts->ParseArgs(llvm::makeArrayRef(argBeg, argEnd), - missingArgIndex, missingArgCount)); +#if LLVM_VERSION_MAJOR > 3 || \ + LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7 + llvm::opt::InputArgList args(opts->ParseArgs( + llvm::makeArrayRef(argBeg, argEnd), missingArgIndex, missingArgCount)); clang::ParseDiagnosticArgs(*diagOpts, args); #else - std::unique_ptr - args(opts->ParseArgs(argBeg, argEnd, missingArgIndex, missingArgCount)); + std::unique_ptr args( + opts->ParseArgs(argBeg, argEnd, missingArgIndex, missingArgCount)); clang::ParseDiagnosticArgs(*diagOpts, *args); #endif clang::TextDiagnosticPrinter* diagClient = new clang::TextDiagnosticPrinter(llvm::errs(), &*diagOpts); - llvm::IntrusiveRefCntPtr - diags(new clang::DiagnosticsEngine(diagID, &*diagOpts, diagClient)); + llvm::IntrusiveRefCntPtr diags( + new clang::DiagnosticsEngine(diagID, &*diagOpts, diagClient)); clang::ProcessWarningOptions(*diags, *diagOpts, /*ReportDiags=*/false); return diags; } -static int runClangImpl(const char* const* argBeg, - const char* const* argEnd, +static int runClangImpl(const char* const* argBeg, const char* const* argEnd, Options const& opts) { // Construct a diagnostics engine for use while processing driver options. @@ -465,12 +495,12 @@ static int runClangImpl(const char* const* argBeg, !llvm::sys::fs::is_directory(d.ResourceDir)) { d.ResourceDir = getClangResourceDir(); } - llvm::SmallVector cArgs; + llvm::SmallVector cArgs; cArgs.push_back(""); cArgs.insert(cArgs.end(), argBeg, argEnd); // Tell the driver not to generate any commands past syntax parsing. - if(opts.PPOnly) { + if (opts.PPOnly) { cArgs.push_back("-E"); } else { cArgs.push_back("-fsyntax-only"); @@ -483,13 +513,13 @@ static int runClangImpl(const char* const* argBeg, } // For '-###' just print the jobs and exit early. - if(c->getArgs().hasArg(clang::driver::options::OPT__HASH_HASH_HASH)) { + if (c->getArgs().hasArg(clang::driver::options::OPT__HASH_HASH_HASH)) { c->getJobs().Print(llvm::errs(), "\n", true); return 0; } // Reject '-o' with multiple inputs. - if(!opts.OutputFile.empty() && c->getJobs().size() > 1) { + if (!opts.OutputFile.empty() && c->getJobs().size() > 1) { diags->Report(clang::diag::err_drv_output_argument_with_multiple_files); return 1; } @@ -497,17 +527,17 @@ static int runClangImpl(const char* const* argBeg, // Run Clang for each compilation computed by the driver. // This should be once per input source file. bool result = true; - for(auto const& job : c->getJobs()) { + for (auto const& job : c->getJobs()) { clang::driver::Command const* cmd = llvm::dyn_cast(&job); - if(cmd && strcmp(cmd->getCreator().getName(), "clang") == 0) { + if (cmd && strcmp(cmd->getCreator().getName(), "clang") == 0) { // Invoke Clang with this set of arguments. - std::unique_ptr - CI(new clang::CompilerInstance()); + std::unique_ptr CI( + new clang::CompilerInstance()); const char* const* cmdArgBeg = cmd->getArguments().data(); const char* const* cmdArgEnd = cmdArgBeg + cmd->getArguments().size(); - if (clang::CompilerInvocation::CreateFromArgs - (CI->getInvocation(), cmdArgBeg, cmdArgEnd, *diags)) { + if (clang::CompilerInvocation::CreateFromArgs( + CI->getInvocation(), cmdArgBeg, cmdArgEnd, *diags)) { if (diags->hasErrorOccurred()) { return 1; } @@ -521,25 +551,23 @@ static int runClangImpl(const char* const* argBeg, llvm::raw_svector_ostream msg(buf); job.Print(msg, "\n", true); diags->Report(clang::diag::err_fe_expected_clang_command); - diags->Report(clang::diag::err_fe_expected_compiler_job) - << msg.str(); + diags->Report(clang::diag::err_fe_expected_compiler_job) << msg.str(); result = false; } } - return result? 0:1; + return result ? 0 : 1; } -int runClang(const char* const* argBeg, - const char* const* argEnd, +int runClang(const char* const* argBeg, const char* const* argEnd, Options const& opts) { llvm::SmallVector args(argBeg, argEnd); std::string fmsc_version = "-fmsc-version="; std::string std_flag = "-std="; - if(opts.HaveCC) { + if (opts.HaveCC) { // Configure target to match that of given compiler. - if(!opts.HaveTarget && !opts.Triple.empty()) { + if (!opts.HaveTarget && !opts.Triple.empty()) { args.push_back("-target"); args.push_back(opts.Triple.c_str()); } @@ -549,10 +577,11 @@ int runClang(const char* const* argBeg, args.push_back("-nostdlibinc"); // Add header search paths detected from given compiler. - for(std::vector::const_iterator - i = opts.Includes.begin(), e = opts.Includes.end(); - i != e; ++i) { - if(i->Framework) { + for (std::vector::const_iterator + i = opts.Includes.begin(), + e = opts.Includes.end(); + i != e; ++i) { + if (i->Framework) { args.push_back("-iframework"); } else { args.push_back("-isystem"); @@ -565,18 +594,18 @@ int runClang(const char* const* argBeg, // Configure language options to match given compiler. std::string const& pd = opts.Predefines; - if(pd.find("#define _MSC_EXTENSIONS ") != pd.npos) { + if (pd.find("#define _MSC_EXTENSIONS ") != pd.npos) { args.push_back("-fms-extensions"); } - if(const char* d = strstr(pd.c_str(), "#define _MSC_VER ")) { + if (const char* d = strstr(pd.c_str(), "#define _MSC_VER ")) { args.push_back("-fms-compatibility"); // Extract the _MSC_VER value to give to -fmsc-version=. d += 17; - if(const char* e = strchr(d, '\n')) { - if(*(e - 1) == '\r') { + if (const char* e = strchr(d, '\n')) { + if (*(e - 1) == '\r') { --e; } - std::string const msc_ver_str(d, e-d); + std::string const msc_ver_str(d, e - d); fmsc_version += msc_ver_str; args.push_back(fmsc_version.c_str()); @@ -621,7 +650,7 @@ int runClang(const char* const* argBeg, } // Add the standard year. - std::string const std_date_str(d, e-d); + std::string const std_date_str(d, e - d); errno = 0; long std_date = std::strtol(std_date_str.c_str(), nullptr, 10); if (errno != 0) { @@ -640,14 +669,14 @@ int runClang(const char* const* argBeg, args.push_back(std_flag.c_str()); } } else if (const char* d = - strstr(pd.c_str(), "#define __STDC_VERSION__ ")) { + strstr(pd.c_str(), "#define __STDC_VERSION__ ")) { // Extract the C standard level. d += 25; if (const char* e = strchr(d, '\n')) { if (*(e - 1) == '\r') { --e; } - std::string const std_date_str(d, e-d); + std::string const std_date_str(d, e - d); errno = 0; long std_date = std::strtol(std_date_str.c_str(), nullptr, 10); if (errno != 0) { diff --git a/src/RunClang.h b/src/RunClang.h index 4918137..5fc6350 100644 --- a/src/RunClang.h +++ b/src/RunClang.h @@ -19,8 +19,7 @@ struct Options; /// runClang - Run Clang with given user arguments and detected options. -int runClang(const char* const* argBeg, - const char* const* argEnd, +int runClang(const char* const* argBeg, const char* const* argEnd, Options const& opts); #endif // CASTXML_RUNCLANG_H diff --git a/src/Utils.cxx b/src/Utils.cxx index 4977489..160e13c 100644 --- a/src/Utils.cxx +++ b/src/Utils.cxx @@ -18,10 +18,10 @@ #include "Version.h" #include +#include #include #include #include -#include #include static std::string castxmlResourceDir; @@ -29,8 +29,8 @@ static std::string castxmlClangResourceDir; static std::string GetMainExecutable(const char* argv0) { - return llvm::sys::fs::getMainExecutable - (argv0, (void*)(intptr_t)GetMainExecutable); + return llvm::sys::fs::getMainExecutable(argv0, + (void*)(intptr_t)GetMainExecutable); } static bool tryBuildDir(std::string const& dir) @@ -44,10 +44,8 @@ static bool tryBuildDir(std::string const& dir) std::ifstream cl_fin(cl_dir_txt.c_str()); std::string src_dir; std::string cl_dir; - if (std::getline(src_fin, src_dir) && - llvm::sys::fs::is_directory(src_dir) && - std::getline(cl_fin, cl_dir) && - llvm::sys::fs::is_directory(cl_dir)) { + if (std::getline(src_fin, src_dir) && llvm::sys::fs::is_directory(src_dir) && + std::getline(cl_fin, cl_dir) && llvm::sys::fs::is_directory(cl_dir)) { castxmlResourceDir = src_dir + "/share/castxml"; castxmlClangResourceDir = cl_dir; return true; @@ -78,8 +76,7 @@ bool findResourceDir(const char* argv0, std::ostream& error) llvm::sys::path::remove_filename(dir2); // Build tree has // /bin[/]/castxml - if (!tryBuildDir(dir.str()) && - !tryBuildDir(dir2.str())) { + if (!tryBuildDir(dir.str()) && !tryBuildDir(dir2.str())) { error << "Unable to locate resources for " << exe << "\n"; return false; } @@ -105,14 +102,12 @@ std::string getVersionString() unsigned int getVersionValue() { - return (CASTXML_VERSION_MAJOR * 1000000 + - CASTXML_VERSION_MINOR * 1000 + - CASTXML_VERSION_PATCH * 1); + return (CASTXML_VERSION_MAJOR * 1000000 + CASTXML_VERSION_MINOR * 1000 + + CASTXML_VERSION_PATCH * 1); } -bool runCommand(int argc, const char* const* argv, - int& ret, std::string& out, std::string& err, - std::string& msg) +bool runCommand(int argc, const char* const* argv, int& ret, std::string& out, + std::string& err, std::string& msg) { std::vector cmd(argv, argv + argc); cmd.push_back(0); @@ -135,39 +130,39 @@ bool runCommand(int argc, const char* const* argv, char* data; int length; int pipe; - while((pipe = cxsysProcess_WaitForData(cp, &data, &length, 0)) > 0) { - if(pipe == cxsysProcess_Pipe_STDOUT) { - outBuf.insert(outBuf.end(), data, data+length); - } else if(pipe == cxsysProcess_Pipe_STDERR) { - errBuf.insert(errBuf.end(), data, data+length); + while ((pipe = cxsysProcess_WaitForData(cp, &data, &length, 0)) > 0) { + if (pipe == cxsysProcess_Pipe_STDOUT) { + outBuf.insert(outBuf.end(), data, data + length); + } else if (pipe == cxsysProcess_Pipe_STDERR) { + errBuf.insert(errBuf.end(), data, data + length); } } cxsysProcess_WaitForExit(cp, 0); - if(!outBuf.empty()) { + if (!outBuf.empty()) { out.append(&*outBuf.begin(), outBuf.size()); } - if(!errBuf.empty()) { + if (!errBuf.empty()) { err.append(&*errBuf.begin(), errBuf.size()); } bool result = true; - switch(cxsysProcess_GetState(cp)) { - case cxsysProcess_State_Exited: - ret = cxsysProcess_GetExitValue(cp); - break; - case cxsysProcess_State_Exception: - msg = cxsysProcess_GetExceptionString(cp); - result = false; - break; - case cxsysProcess_State_Error: - msg = cxsysProcess_GetErrorString(cp); - result = false; - break; - default: - msg = "Process terminated in unexpected state.\n"; - result = false; - break; + switch (cxsysProcess_GetState(cp)) { + case cxsysProcess_State_Exited: + ret = cxsysProcess_GetExitValue(cp); + break; + case cxsysProcess_State_Exception: + msg = cxsysProcess_GetExceptionString(cp); + result = false; + break; + case cxsysProcess_State_Error: + msg = cxsysProcess_GetErrorString(cp); + result = false; + break; + default: + msg = "Process terminated in unexpected state.\n"; + result = false; + break; } cxsysProcess_Delete(cp); @@ -178,27 +173,34 @@ std::string encodeXML(std::string const& in, bool cdata) { std::string xml; const char* last = in.c_str(); - for(const char* c = last; *c; ++c) { - switch(*c) { -# define XML(OUT) \ - xml.append(last, c - last); \ - last = c + 1; \ - xml.append(OUT) - case '&': XML("&"); break; - case '<': XML("<"); break; - case '>': XML(">"); break; - case '\'': - if(!cdata) { - XML("'"); - } - break; - case '"': - if(!cdata) { - XML("""); - } - break; - default: break; -# undef XML + for (const char* c = last; *c; ++c) { + switch (*c) { +#define XML(OUT) \ + xml.append(last, c - last); \ + last = c + 1; \ + xml.append(OUT) + case '&': + XML("&"); + break; + case '<': + XML("<"); + break; + case '>': + XML(">"); + break; + case '\'': + if (!cdata) { + XML("'"); + } + break; + case '"': + if (!cdata) { + XML("""); + } + break; + default: + break; +#undef XML } } xml.append(last); @@ -206,7 +208,8 @@ std::string encodeXML(std::string const& in, bool cdata) } std::string stringReplace(std::string str, std::string const& in, - std::string const& out) { + std::string const& out) +{ std::string::size_type p = 0; while ((p = str.find(in, p)) != std::string::npos) { str.replace(p, in.size(), out); @@ -216,7 +219,7 @@ std::string stringReplace(std::string str, std::string const& in, } #if defined(_WIN32) -# include +#include #endif void suppressInteractiveErrors() diff --git a/src/Utils.h b/src/Utils.h index 7103fa7..a29e96f 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -37,9 +37,8 @@ std::string getVersionString(); unsigned int getVersionValue(); /// runCommand - Run a given command line and capture the output. -bool runCommand(int argc, const char* const* argv, - int& ret, std::string& out, std::string& err, - std::string& msg); +bool runCommand(int argc, const char* const* argv, int& ret, std::string& out, + std::string& err, std::string& msg); /// suppressInteractiveErrors - Disable Windows error dialog popups void suppressInteractiveErrors(); diff --git a/src/castxml.cxx b/src/castxml.cxx index 79232e1..485d939 100644 --- a/src/castxml.cxx +++ b/src/castxml.cxx @@ -29,20 +29,23 @@ #include "llvm/Support/raw_ostream.h" #include -#include #include +#include +#include #include #include -#include -#if LLVM_VERSION_MAJOR > 3 \ - || LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7 -# include "llvm/Support/StringSaver.h" +#if LLVM_VERSION_MAJOR > 3 || \ + LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7 +#include "llvm/Support/StringSaver.h" #else -class StringSaver: public llvm::cl::StringSaver { +class StringSaver : public llvm::cl::StringSaver +{ std::set Strings; + public: - const char* SaveString(const char* s) { + const char* SaveString(const char* s) + { return this->Strings.insert(s).first->c_str(); } }; @@ -59,18 +62,17 @@ int main(int argc_in, const char** argv_in) llvm::SmallVector argv; llvm::SpecificBumpPtrAllocator argAlloc; - if(std::error_code e = - llvm::sys::Process::GetArgumentVector( - argv, llvm::ArrayRef(argv_in, argc_in), argAlloc)) { + if (std::error_code e = llvm::sys::Process::GetArgumentVector( + argv, llvm::ArrayRef(argv_in, argc_in), argAlloc)) { llvm::errs() << "error: could not get arguments: " << e.message() << "\n"; return 1; - } else if(argv.empty()) { + } else if (argv.empty()) { llvm::errs() << "error: no argv[0]?!\n"; return 1; } -#if LLVM_VERSION_MAJOR > 3 \ - || LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 8 +#if LLVM_VERSION_MAJOR > 3 || \ + LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 8 llvm::BumpPtrAllocator argSaverAlloc; llvm::StringSaver argSaver(argSaverAlloc); #elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 7 @@ -79,12 +81,12 @@ int main(int argc_in, const char** argv_in) #else StringSaver argSaver; #endif - llvm::cl::ExpandResponseFiles( - argSaver, llvm::cl::TokenizeGNUCommandLine, argv); + llvm::cl::ExpandResponseFiles(argSaver, llvm::cl::TokenizeGNUCommandLine, + argv); size_t const argc = argv.size(); - if(!findResourceDir(argv[0], std::cerr)) { + if (!findResourceDir(argv[0], std::cerr)) { return 1; } @@ -126,13 +128,13 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ Options opts; - llvm::SmallVector clang_args; - llvm::SmallVector cc_args; + llvm::SmallVector clang_args; + llvm::SmallVector cc_args; const char* cc_id = 0; - for(size_t i=1; i < argc; ++i) { - if(strcmp(argv[i], "--castxml-gccxml") == 0) { - if(!opts.GccXml) { + for (size_t i = 1; i < argc; ++i) { + if (strcmp(argv[i], "--castxml-gccxml") == 0) { + if (!opts.GccXml) { opts.GccXml = true; } else { /* clang-format off */ @@ -144,8 +146,8 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ return 1; } - } else if(strcmp(argv[i], "--castxml-start") == 0) { - if((i+1) < argc) { + } else if (strcmp(argv[i], "--castxml-start") == 0) { + if ((i + 1) < argc) { std::string item; std::stringstream stream(argv[++i]); while (std::getline(stream, item, ',')) { @@ -162,14 +164,14 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ return 1; } - } else if(strncmp(argv[i], "--castxml-cc-", 13) == 0) { - if(!cc_id) { + } else if (strncmp(argv[i], "--castxml-cc-", 13) == 0) { + if (!cc_id) { cc_id = argv[i] + 13; - if((i+1) >= argc) { + if ((i + 1) >= argc) { continue; } ++i; - if(strncmp(argv[i], "-", 1) == 0) { + if (strncmp(argv[i], "-", 1) == 0) { /* clang-format off */ std::cerr << "error: argument to '--castxml-cc-" << cc_id << @@ -180,10 +182,10 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ return 1; } - if(strcmp(argv[i], "(") == 0) { + if (strcmp(argv[i], "(") == 0) { unsigned int depth = 1; - for(++i; i < argc && depth > 0; ++i) { - if(strncmp(argv[i], "--castxml-", 10) == 0) { + for (++i; i < argc && depth > 0; ++i) { + if (strncmp(argv[i], "--castxml-", 10) == 0) { /* clang-format off */ std::cerr << "error: arguments to '--castxml-cc-" << cc_id << @@ -193,18 +195,18 @@ int main(int argc_in, const char** argv_in) ; /* clang-format on */ return 1; - } else if(strcmp(argv[i], "(") == 0) { + } else if (strcmp(argv[i], "(") == 0) { ++depth; cc_args.push_back(argv[i]); - } else if(strcmp(argv[i], ")") == 0) { - if(--depth) { + } else if (strcmp(argv[i], ")") == 0) { + if (--depth) { cc_args.push_back(argv[i]); } } else { cc_args.push_back(argv[i]); } } - if(depth) { + if (depth) { /* clang-format off */ std::cerr << "error: unbalanced parentheses after '--castxml-cc-" << @@ -229,10 +231,10 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ return 1; } - } else if(strcmp(argv[i], "-E") == 0) { + } else if (strcmp(argv[i], "-E") == 0) { opts.PPOnly = true; - } else if(strcmp(argv[i], "-o") == 0) { - if((i+1) < argc) { + } else if (strcmp(argv[i], "-o") == 0) { + if ((i + 1) < argc) { opts.OutputFile = argv[++i]; } else { /* clang-format off */ @@ -244,8 +246,8 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ return 1; } - } else if(strcmp(argv[i], "-help") == 0 || - strcmp(argv[i], "--help") == 0) { + } else if (strcmp(argv[i], "-help") == 0 || + strcmp(argv[i], "--help") == 0) { /* clang-format off */ std::cout << usage << @@ -258,7 +260,7 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ // Also print Clang help. clang_args.push_back(argv[i]); - } else if(strcmp(argv[i], "--version") == 0) { + } else if (strcmp(argv[i], "--version") == 0) { /* clang-format off */ std::cout << "castxml version " << getVersionString() << "\n" @@ -282,9 +284,9 @@ int main(int argc_in, const char** argv_in) } } - if(cc_id) { + if (cc_id) { opts.HaveCC = true; - if(cc_args.empty()) { + if (cc_args.empty()) { /* clang-format off */ std::cerr << "error: '--castxml-cc-" << cc_id << @@ -295,13 +297,13 @@ int main(int argc_in, const char** argv_in) /* clang-format on */ return 1; } - if(!detectCC(cc_id, cc_args.data(), cc_args.data() + cc_args.size(), - opts)) { + if (!detectCC(cc_id, cc_args.data(), cc_args.data() + cc_args.size(), + opts)) { return 1; } } - if(clang_args.empty()) { + if (clang_args.empty()) { return 0; } diff --git a/test/expect/gccxml.any.Class-abstract.xml.txt b/test/expect/gccxml.any.Class-abstract.xml.txt index 935f473..0072787 100644 --- a/test/expect/gccxml.any.Class-abstract.xml.txt +++ b/test/expect/gccxml.any.Class-abstract.xml.txt @@ -1,11 +1,11 @@ ^<\?xml version="1.0"\?> ]*> - - + + - - + + diff --git a/test/expect/gccxml.any.Class-base-offset.xml.txt b/test/expect/gccxml.any.Class-base-offset.xml.txt index 14f49b6..a1a4f40 100644 --- a/test/expect/gccxml.any.Class-base-offset.xml.txt +++ b/test/expect/gccxml.any.Class-base-offset.xml.txt @@ -1,6 +1,6 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Class-base-typedef.xml.txt b/test/expect/gccxml.any.Class-base-typedef.xml.txt index f82be8a..e4cad62 100644 --- a/test/expect/gccxml.any.Class-base-typedef.xml.txt +++ b/test/expect/gccxml.any.Class-base-typedef.xml.txt @@ -1,16 +1,16 @@ ^<\?xml version="1.0"\?> ]*> - + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-forward.xml.txt b/test/expect/gccxml.any.Class-forward.xml.txt index 59c4902..313e06b 100644 --- a/test/expect/gccxml.any.Class-forward.xml.txt +++ b/test/expect/gccxml.any.Class-forward.xml.txt @@ -1,14 +1,14 @@ ^<\?xml version="1.0"\?> ]*> - - - - - + + + + + - + diff --git a/test/expect/gccxml.any.Class-friends.xml.txt b/test/expect/gccxml.any.Class-friends.xml.txt index 353afcd..bac3cc2 100644 --- a/test/expect/gccxml.any.Class-friends.xml.txt +++ b/test/expect/gccxml.any.Class-friends.xml.txt @@ -1,19 +1,19 @@ ^<\?xml version="1.0"\?> ]*> - - - - + + + + - - + + - + - + diff --git a/test/expect/gccxml.any.Class-implicit-member-access-mutable.xml.txt b/test/expect/gccxml.any.Class-implicit-member-access-mutable.xml.txt index 56dece8..bacc2fc 100644 --- a/test/expect/gccxml.any.Class-implicit-member-access-mutable.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-access-mutable.xml.txt @@ -1,20 +1,20 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - - - + + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-implicit-member-access.xml.txt b/test/expect/gccxml.any.Class-implicit-member-access.xml.txt index 9cf2a14..035cb7d 100644 --- a/test/expect/gccxml.any.Class-implicit-member-access.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-access.xml.txt @@ -1,18 +1,18 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - - - + + + + - - + + diff --git a/test/expect/gccxml.any.Class-implicit-member-array.xml.txt b/test/expect/gccxml.any.Class-implicit-member-array.xml.txt index f7519c7..586011f 100644 --- a/test/expect/gccxml.any.Class-implicit-member-array.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-array.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Class-implicit-member-bad-base.xml.txt b/test/expect/gccxml.any.Class-implicit-member-bad-base.xml.txt index 6c98ab9..5bf41e3 100644 --- a/test/expect/gccxml.any.Class-implicit-member-bad-base.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-bad-base.xml.txt @@ -8,15 +8,15 @@ - + - - - - + + + + - + diff --git a/test/expect/gccxml.any.Class-implicit-member-const-aggregate.xml.txt b/test/expect/gccxml.any.Class-implicit-member-const-aggregate.xml.txt index a6761b4..0c678f9 100644 --- a/test/expect/gccxml.any.Class-implicit-member-const-aggregate.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-const-aggregate.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Class-implicit-member-const.xml.txt b/test/expect/gccxml.any.Class-implicit-member-const.xml.txt index fedda86..38edff8 100644 --- a/test/expect/gccxml.any.Class-implicit-member-const.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-const.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Class-implicit-member-reference.xml.txt b/test/expect/gccxml.any.Class-implicit-member-reference.xml.txt index 619941d..d522d6c 100644 --- a/test/expect/gccxml.any.Class-implicit-member-reference.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-member-reference.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Class-implicit-members.xml.txt b/test/expect/gccxml.any.Class-implicit-members.xml.txt index 8676dd6..bd2dc9f 100644 --- a/test/expect/gccxml.any.Class-implicit-members.xml.txt +++ b/test/expect/gccxml.any.Class-implicit-members.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Class-member-template-access.xml.txt b/test/expect/gccxml.any.Class-member-template-access.xml.txt index 4c2a0fc..1dcefc5 100644 --- a/test/expect/gccxml.any.Class-member-template-access.xml.txt +++ b/test/expect/gccxml.any.Class-member-template-access.xml.txt @@ -1,9 +1,9 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + @@ -12,14 +12,14 @@ - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-member-template.xml.txt b/test/expect/gccxml.any.Class-member-template.xml.txt index cc5ae33..ffdea37 100644 --- a/test/expect/gccxml.any.Class-member-template.xml.txt +++ b/test/expect/gccxml.any.Class-member-template.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Class-partial-template-member-Typedef.xml.txt b/test/expect/gccxml.any.Class-partial-template-member-Typedef.xml.txt index 56b2dd4..6ec6fe1 100644 --- a/test/expect/gccxml.any.Class-partial-template-member-Typedef.xml.txt +++ b/test/expect/gccxml.any.Class-partial-template-member-Typedef.xml.txt @@ -1,18 +1,18 @@ ^<\?xml version="1.0"\?> ]*> - - - - + + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-Method-Argument-const.xml.txt b/test/expect/gccxml.any.Class-template-Method-Argument-const.xml.txt index 35a9f71..8ecd5b2 100644 --- a/test/expect/gccxml.any.Class-template-Method-Argument-const.xml.txt +++ b/test/expect/gccxml.any.Class-template-Method-Argument-const.xml.txt @@ -1,17 +1,17 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-Method-Argument-default.xml.txt b/test/expect/gccxml.any.Class-template-Method-Argument-default.xml.txt index 5ebccfb..70cfe24 100644 --- a/test/expect/gccxml.any.Class-template-Method-Argument-default.xml.txt +++ b/test/expect/gccxml.any.Class-template-Method-Argument-default.xml.txt @@ -1,17 +1,17 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-Method-return-const.xml.txt b/test/expect/gccxml.any.Class-template-Method-return-const.xml.txt index aa75b74..b44a4a4 100644 --- a/test/expect/gccxml.any.Class-template-Method-return-const.xml.txt +++ b/test/expect/gccxml.any.Class-template-Method-return-const.xml.txt @@ -1,15 +1,15 @@ ^<\?xml version="1.0"\?> ]*> - - - - - + + + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-constructor-template.xml.txt b/test/expect/gccxml.any.Class-template-constructor-template.xml.txt index 4bbdd52..1b32202 100644 --- a/test/expect/gccxml.any.Class-template-constructor-template.xml.txt +++ b/test/expect/gccxml.any.Class-template-constructor-template.xml.txt @@ -1,16 +1,16 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + - - + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-friends.xml.txt b/test/expect/gccxml.any.Class-template-friends.xml.txt index 53d0860..da38882 100644 --- a/test/expect/gccxml.any.Class-template-friends.xml.txt +++ b/test/expect/gccxml.any.Class-template-friends.xml.txt @@ -1,22 +1,22 @@ ^<\?xml version="1.0"\?> ]*> - - - - + + + + - - + + - + - - + + - + $ diff --git a/test/expect/gccxml.any.Class-template-member-Typedef-const.xml.txt b/test/expect/gccxml.any.Class-template-member-Typedef-const.xml.txt index f918475..964c82c 100644 --- a/test/expect/gccxml.any.Class-template-member-Typedef-const.xml.txt +++ b/test/expect/gccxml.any.Class-template-member-Typedef-const.xml.txt @@ -1,18 +1,18 @@ ^<\?xml version="1.0"\?> ]*> - - - - + + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-member-Typedef.xml.txt b/test/expect/gccxml.any.Class-template-member-Typedef.xml.txt index 859c196..e767040 100644 --- a/test/expect/gccxml.any.Class-template-member-Typedef.xml.txt +++ b/test/expect/gccxml.any.Class-template-member-Typedef.xml.txt @@ -1,18 +1,18 @@ ^<\?xml version="1.0"\?> ]*> - - - - + + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-member-nontemplate-Typedef.xml.txt b/test/expect/gccxml.any.Class-template-member-nontemplate-Typedef.xml.txt index 693ac8d..5c70a39 100644 --- a/test/expect/gccxml.any.Class-template-member-nontemplate-Typedef.xml.txt +++ b/test/expect/gccxml.any.Class-template-member-nontemplate-Typedef.xml.txt @@ -1,10 +1,10 @@ ^<\?xml version="1.0"\?> ]*> - - + + - - + + $ diff --git a/test/expect/gccxml.any.Class-template-member-template.xml.txt b/test/expect/gccxml.any.Class-template-member-template.xml.txt index 8e23b3f..00c7ac5 100644 --- a/test/expect/gccxml.any.Class-template-member-template.xml.txt +++ b/test/expect/gccxml.any.Class-template-member-template.xml.txt @@ -1,17 +1,17 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template-recurse.xml.txt b/test/expect/gccxml.any.Class-template-recurse.xml.txt index 2a4a214..627b844 100644 --- a/test/expect/gccxml.any.Class-template-recurse.xml.txt +++ b/test/expect/gccxml.any.Class-template-recurse.xml.txt @@ -1,15 +1,15 @@ ^<\?xml version="1.0"\?> ]*> - - - - - + + + + + - - + + - + diff --git a/test/expect/gccxml.any.Class-template.xml.txt b/test/expect/gccxml.any.Class-template.xml.txt index 829ceb0..fcc577a 100644 --- a/test/expect/gccxml.any.Class-template.xml.txt +++ b/test/expect/gccxml.any.Class-template.xml.txt @@ -1,24 +1,24 @@ ^<\?xml version="1.0"\?> ]*> - - - - - - + + + + + + - - + + - - - - + + + + - - + + - + diff --git a/test/expect/gccxml.any.Constructor-annotate.xml.txt b/test/expect/gccxml.any.Constructor-annotate.xml.txt index 90c7f02..e9e250e 100644 --- a/test/expect/gccxml.any.Constructor-annotate.xml.txt +++ b/test/expect/gccxml.any.Constructor-annotate.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Constructor.xml.txt b/test/expect/gccxml.any.Constructor.xml.txt index 4aec461..f52ca65 100644 --- a/test/expect/gccxml.any.Constructor.xml.txt +++ b/test/expect/gccxml.any.Constructor.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Converter-annotate.xml.txt b/test/expect/gccxml.any.Converter-annotate.xml.txt index 0642674..b07160e 100644 --- a/test/expect/gccxml.any.Converter-annotate.xml.txt +++ b/test/expect/gccxml.any.Converter-annotate.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Converter.xml.txt b/test/expect/gccxml.any.Converter.xml.txt index 0c563a3..90218dd 100644 --- a/test/expect/gccxml.any.Converter.xml.txt +++ b/test/expect/gccxml.any.Converter.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Destructor-annotate.xml.txt b/test/expect/gccxml.any.Destructor-annotate.xml.txt index 0660f79..c7898d2 100644 --- a/test/expect/gccxml.any.Destructor-annotate.xml.txt +++ b/test/expect/gccxml.any.Destructor-annotate.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Destructor.xml.txt b/test/expect/gccxml.any.Destructor.xml.txt index 130b197..1e2be84 100644 --- a/test/expect/gccxml.any.Destructor.xml.txt +++ b/test/expect/gccxml.any.Destructor.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Field-annotate.xml.txt b/test/expect/gccxml.any.Field-annotate.xml.txt index d5d524e..3e52277 100644 --- a/test/expect/gccxml.any.Field-annotate.xml.txt +++ b/test/expect/gccxml.any.Field-annotate.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Field.xml.txt b/test/expect/gccxml.any.Field.xml.txt index a3389c1..8b695f0 100644 --- a/test/expect/gccxml.any.Field.xml.txt +++ b/test/expect/gccxml.any.Field.xml.txt @@ -1,9 +1,9 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + diff --git a/test/expect/gccxml.any.Function-Argument-default-cast.xml.txt b/test/expect/gccxml.any.Function-Argument-default-cast.xml.txt index 577adb1..d4c40d4 100644 --- a/test/expect/gccxml.any.Function-Argument-default-cast.xml.txt +++ b/test/expect/gccxml.any.Function-Argument-default-cast.xml.txt @@ -2,35 +2,35 @@ ]*> - + - - - - - - - - - - + + + + + + + + + + - - + + - - + + - - - - + + + + diff --git a/test/expect/gccxml.any.Function-Argument-default-ns.xml.txt b/test/expect/gccxml.any.Function-Argument-default-ns.xml.txt index c6a3282..7dc1cad 100644 --- a/test/expect/gccxml.any.Function-Argument-default-ns.xml.txt +++ b/test/expect/gccxml.any.Function-Argument-default-ns.xml.txt @@ -5,9 +5,9 @@ - - - + + + diff --git a/test/expect/gccxml.any.Function-calling-convention-ms-annotate.xml.txt b/test/expect/gccxml.any.Function-calling-convention-ms-annotate.xml.txt index ba7fb08..89668b5 100644 --- a/test/expect/gccxml.any.Function-calling-convention-ms-annotate.xml.txt +++ b/test/expect/gccxml.any.Function-calling-convention-ms-annotate.xml.txt @@ -1,16 +1,16 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - + + - - + + diff --git a/test/expect/gccxml.any.Function-template.xml.txt b/test/expect/gccxml.any.Function-template.xml.txt index f74aaba..add7387 100644 --- a/test/expect/gccxml.any.Function-template.xml.txt +++ b/test/expect/gccxml.any.Function-template.xml.txt @@ -1,10 +1,10 @@ ^<\?xml version="1.0"\?> ]*> - - + + - - + + diff --git a/test/expect/gccxml.any.GNU-float128.xml.txt b/test/expect/gccxml.any.GNU-float128.xml.txt index 8ae15a6..24520eb 100644 --- a/test/expect/gccxml.any.GNU-float128.xml.txt +++ b/test/expect/gccxml.any.GNU-float128.xml.txt @@ -1,14 +1,14 @@ ^<\?xml version="1.0"\?> ]*> - - + + - - + + - + $ diff --git a/test/expect/gccxml.any.Method-Argument-default-cast.xml.txt b/test/expect/gccxml.any.Method-Argument-default-cast.xml.txt index e7f93f2..809b667 100644 --- a/test/expect/gccxml.any.Method-Argument-default-cast.xml.txt +++ b/test/expect/gccxml.any.Method-Argument-default-cast.xml.txt @@ -1,13 +1,13 @@ ^<\?xml version="1.0"\?> ]*> - - - - + + + + - - + + diff --git a/test/expect/gccxml.any.Method-Argument-default.xml.txt b/test/expect/gccxml.any.Method-Argument-default.xml.txt index 0e10cbf..ee5a364 100644 --- a/test/expect/gccxml.any.Method-Argument-default.xml.txt +++ b/test/expect/gccxml.any.Method-Argument-default.xml.txt @@ -1,9 +1,9 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + diff --git a/test/expect/gccxml.any.Method-annotate.xml.txt b/test/expect/gccxml.any.Method-annotate.xml.txt index 3e4f2f3..4362819 100644 --- a/test/expect/gccxml.any.Method-annotate.xml.txt +++ b/test/expect/gccxml.any.Method-annotate.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Method-overrides.xml.txt b/test/expect/gccxml.any.Method-overrides.xml.txt index dc95285..5fd9f52 100644 --- a/test/expect/gccxml.any.Method-overrides.xml.txt +++ b/test/expect/gccxml.any.Method-overrides.xml.txt @@ -1,23 +1,23 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - + + - - - - + + + + - - + + diff --git a/test/expect/gccxml.any.Method-rvalue-reference.xml.txt b/test/expect/gccxml.any.Method-rvalue-reference.xml.txt index 1fd1126..bf9d6a9 100644 --- a/test/expect/gccxml.any.Method-rvalue-reference.xml.txt +++ b/test/expect/gccxml.any.Method-rvalue-reference.xml.txt @@ -1,14 +1,14 @@ ^<\?xml version="1.0"\?> ]*> - - + + - - + + - - + + diff --git a/test/expect/gccxml.any.Method.xml.txt b/test/expect/gccxml.any.Method.xml.txt index 953620a..d9ab112 100644 --- a/test/expect/gccxml.any.Method.xml.txt +++ b/test/expect/gccxml.any.Method.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Namespace-Class-members.xml.txt b/test/expect/gccxml.any.Namespace-Class-members.xml.txt index 9f434ae..4f9a34d 100644 --- a/test/expect/gccxml.any.Namespace-Class-members.xml.txt +++ b/test/expect/gccxml.any.Namespace-Class-members.xml.txt @@ -2,7 +2,7 @@ ]*> - + diff --git a/test/expect/gccxml.any.Namespace-inline-template.xml.txt b/test/expect/gccxml.any.Namespace-inline-template.xml.txt index fc966fb..8279588 100644 --- a/test/expect/gccxml.any.Namespace-inline-template.xml.txt +++ b/test/expect/gccxml.any.Namespace-inline-template.xml.txt @@ -2,8 +2,8 @@ ]*> - - + + $ diff --git a/test/expect/gccxml.any.OperatorMethod-annotate.xml.txt b/test/expect/gccxml.any.OperatorMethod-annotate.xml.txt index 692cd5e..ad6fb5a 100644 --- a/test/expect/gccxml.any.OperatorMethod-annotate.xml.txt +++ b/test/expect/gccxml.any.OperatorMethod-annotate.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.OperatorMethod.xml.txt b/test/expect/gccxml.any.OperatorMethod.xml.txt index fad0f46..3dceaf5 100644 --- a/test/expect/gccxml.any.OperatorMethod.xml.txt +++ b/test/expect/gccxml.any.OperatorMethod.xml.txt @@ -1,8 +1,8 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.Typedef-to-Class-template.xml.txt b/test/expect/gccxml.any.Typedef-to-Class-template.xml.txt index 3e6f75d..8d53cb9 100644 --- a/test/expect/gccxml.any.Typedef-to-Class-template.xml.txt +++ b/test/expect/gccxml.any.Typedef-to-Class-template.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - - + + $ diff --git a/test/expect/gccxml.any.Typedef-to-Enumeration-anonymous.xml.txt b/test/expect/gccxml.any.Typedef-to-Enumeration-anonymous.xml.txt index bb21d49..d3a5950 100644 --- a/test/expect/gccxml.any.Typedef-to-Enumeration-anonymous.xml.txt +++ b/test/expect/gccxml.any.Typedef-to-Enumeration-anonymous.xml.txt @@ -1,6 +1,6 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Typedef-to-Enumeration.xml.txt b/test/expect/gccxml.any.Typedef-to-Enumeration.xml.txt index 1e8ec8f..0e452dc 100644 --- a/test/expect/gccxml.any.Typedef-to-Enumeration.xml.txt +++ b/test/expect/gccxml.any.Typedef-to-Enumeration.xml.txt @@ -1,6 +1,6 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.Variable-in-Class.xml.txt b/test/expect/gccxml.any.Variable-in-Class.xml.txt index 510e985..ea92a1e 100644 --- a/test/expect/gccxml.any.Variable-in-Class.xml.txt +++ b/test/expect/gccxml.any.Variable-in-Class.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - + diff --git a/test/expect/gccxml.any.invalid-decl-for-type.xml.txt b/test/expect/gccxml.any.invalid-decl-for-type.xml.txt index 4d3cbab..f7905c3 100644 --- a/test/expect/gccxml.any.invalid-decl-for-type.xml.txt +++ b/test/expect/gccxml.any.invalid-decl-for-type.xml.txt @@ -1,29 +1,29 @@ ^<\?xml version="1.0"\?> ]*> - - - - - - + + + + + + - - + + - - - + + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.any.qualified-type-name.xml.txt b/test/expect/gccxml.any.qualified-type-name.xml.txt index fe1eefa..84bc907 100644 --- a/test/expect/gccxml.any.qualified-type-name.xml.txt +++ b/test/expect/gccxml.any.qualified-type-name.xml.txt @@ -1,7 +1,7 @@ ^<\?xml version="1.0"\?> ]*> - - + + diff --git a/test/expect/gccxml.any.using-declaration-class.xml.txt b/test/expect/gccxml.any.using-declaration-class.xml.txt index 857d19f..2cd4661 100644 --- a/test/expect/gccxml.any.using-declaration-class.xml.txt +++ b/test/expect/gccxml.any.using-declaration-class.xml.txt @@ -1,22 +1,22 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - + + - - - + + + - - + + - + diff --git a/test/expect/gccxml.broken.any.ReferenceType-to-Class-template.xml.txt b/test/expect/gccxml.broken.any.ReferenceType-to-Class-template.xml.txt index e15cd3c..9e64c22 100644 --- a/test/expect/gccxml.broken.any.ReferenceType-to-Class-template.xml.txt +++ b/test/expect/gccxml.broken.any.ReferenceType-to-Class-template.xml.txt @@ -1,16 +1,16 @@ ^<\?xml version="1.0"\?> ]*> - - - + + + - - - + + + - - - + + + @@ -20,6 +20,6 @@ (broken: duplicate ReferenceType)? - + $ diff --git a/test/expect/gccxml.c++11.Class-bases.xml.txt b/test/expect/gccxml.c++11.Class-bases.xml.txt index 48b51e1..189f65a 100644 --- a/test/expect/gccxml.c++11.Class-bases.xml.txt +++ b/test/expect/gccxml.c++11.Class-bases.xml.txt @@ -1,21 +1,21 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - - - + + + + - - + + @@ -27,21 +27,21 @@ - - + + - - - - + + + + - - + + - - - - + + + + diff --git a/test/expect/gccxml.c++11.Class-template-bases.xml.txt b/test/expect/gccxml.c++11.Class-template-bases.xml.txt index 6f9b62a..d213494 100644 --- a/test/expect/gccxml.c++11.Class-template-bases.xml.txt +++ b/test/expect/gccxml.c++11.Class-template-bases.xml.txt @@ -1,19 +1,19 @@ ^<\?xml version="1.0"\?> ]*> - + - - - + + + - - + + - + - + @@ -25,14 +25,14 @@ - - - + + + - - + + - + diff --git a/test/expect/gccxml.c++14.Class-bases.xml.txt b/test/expect/gccxml.c++14.Class-bases.xml.txt index 48b51e1..189f65a 100644 --- a/test/expect/gccxml.c++14.Class-bases.xml.txt +++ b/test/expect/gccxml.c++14.Class-bases.xml.txt @@ -1,21 +1,21 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - - - + + + + - - + + @@ -27,21 +27,21 @@ - - + + - - - - + + + + - - + + - - - - + + + + diff --git a/test/expect/gccxml.c++14.Class-template-bases.xml.txt b/test/expect/gccxml.c++14.Class-template-bases.xml.txt index 6f9b62a..d213494 100644 --- a/test/expect/gccxml.c++14.Class-template-bases.xml.txt +++ b/test/expect/gccxml.c++14.Class-template-bases.xml.txt @@ -1,19 +1,19 @@ ^<\?xml version="1.0"\?> ]*> - + - - - + + + - - + + - + - + @@ -25,14 +25,14 @@ - - - + + + - - + + - + diff --git a/test/expect/gccxml.c++98.Class-bases.xml.txt b/test/expect/gccxml.c++98.Class-bases.xml.txt index 6e58110..df98ded 100644 --- a/test/expect/gccxml.c++98.Class-bases.xml.txt +++ b/test/expect/gccxml.c++98.Class-bases.xml.txt @@ -1,21 +1,21 @@ ^<\?xml version="1.0"\?> ]*> - + - - + + - - - - + + + + - - + + @@ -27,22 +27,22 @@ - - - + + + - - + + - - - - + + + + - - + + - + diff --git a/test/expect/gccxml.c++98.Class-template-bases.xml.txt b/test/expect/gccxml.c++98.Class-template-bases.xml.txt index 44c30e1..d5f0339 100644 --- a/test/expect/gccxml.c++98.Class-template-bases.xml.txt +++ b/test/expect/gccxml.c++98.Class-template-bases.xml.txt @@ -1,19 +1,19 @@ ^<\?xml version="1.0"\?> ]*> - + - - - + + + - - + + - + - + @@ -25,14 +25,14 @@ - - - + + + - - + + - + diff --git a/test/input/CXXLiteral.cxx b/test/input/CXXLiteral.cxx index 2d35460..b409562 100644 --- a/test/input/CXXLiteral.cxx +++ b/test/input/CXXLiteral.cxx @@ -1,3 +1,3 @@ namespace start { - unsigned long long operator "" _u(unsigned long long); +unsigned long long operator"" _u(unsigned long long); } diff --git a/test/input/Class-abstract.cxx b/test/input/Class-abstract.cxx index 419c6ec..89f1f02 100644 --- a/test/input/Class-abstract.cxx +++ b/test/input/Class-abstract.cxx @@ -1,4 +1,5 @@ -class start { +class start +{ virtual int method(int) = 0; virtual operator int() = 0; virtual ~start() = 0; diff --git a/test/input/Class-annotate.cxx b/test/input/Class-annotate.cxx index e0f4261..67d02c4 100644 --- a/test/input/Class-annotate.cxx +++ b/test/input/Class-annotate.cxx @@ -1 +1,3 @@ -class __attribute__ ((annotate ("an annotation"))) start {}; +class __attribute__((annotate("an annotation"))) start +{ +}; diff --git a/test/input/Class-base-offset.cxx b/test/input/Class-base-offset.cxx index 279584c..255130d 100644 --- a/test/input/Class-base-offset.cxx +++ b/test/input/Class-base-offset.cxx @@ -1,4 +1,15 @@ -class base_1 { char b1; }; -class base_2 { char b2; }; -class base_3 { char b3; }; -class start: public base_1, public base_2, public base_3 {}; +class base_1 +{ + char b1; +}; +class base_2 +{ + char b2; +}; +class base_3 +{ + char b3; +}; +class start : public base_1, public base_2, public base_3 +{ +}; diff --git a/test/input/Class-base-typedef.cxx b/test/input/Class-base-typedef.cxx index 159d0da..4f325ea 100644 --- a/test/input/Class-base-typedef.cxx +++ b/test/input/Class-base-typedef.cxx @@ -1,3 +1,7 @@ -class base {}; +class base +{ +}; typedef base base_t; -class start: public base_t {}; +class start : public base_t +{ +}; diff --git a/test/input/Class-bases.cxx b/test/input/Class-bases.cxx index 5e37d14..b38bd8a 100644 --- a/test/input/Class-bases.cxx +++ b/test/input/Class-bases.cxx @@ -1,9 +1,14 @@ -class base_public {}; -class base_private {}; -class base_protected {}; -class start: - public base_public, - private base_private, - virtual protected base_protected +class base_public +{ +}; +class base_private +{ +}; +class base_protected +{ +}; +class start : public base_public, + private base_private, + virtual protected base_protected { }; diff --git a/test/input/Class-forward.cxx b/test/input/Class-forward.cxx index 38374b6..c2ba11d 100644 --- a/test/input/Class-forward.cxx +++ b/test/input/Class-forward.cxx @@ -1,5 +1,6 @@ class start; -class start { +class start +{ public: start(); start(start const&); diff --git a/test/input/Class-friends.cxx b/test/input/Class-friends.cxx index 6659db2..fe3aa56 100644 --- a/test/input/Class-friends.cxx +++ b/test/input/Class-friends.cxx @@ -1,6 +1,9 @@ -class A {}; +class A +{ +}; void f(void); -class start { +class start +{ friend class A; friend void f(void); }; diff --git a/test/input/Class-implicit-member-access-mutable.cxx b/test/input/Class-implicit-member-access-mutable.cxx index 8d9aaec..2b619a1 100644 --- a/test/input/Class-implicit-member-access-mutable.cxx +++ b/test/input/Class-implicit-member-access-mutable.cxx @@ -1,10 +1,14 @@ -class base { +class base +{ protected: base(); ~base(); + private: base(base const&); base& operator=(base const&); mutable int data; }; -class start: public base {}; +class start : public base +{ +}; diff --git a/test/input/Class-implicit-member-access.cxx b/test/input/Class-implicit-member-access.cxx index d9992bc..9673bc5 100644 --- a/test/input/Class-implicit-member-access.cxx +++ b/test/input/Class-implicit-member-access.cxx @@ -1,9 +1,13 @@ -class base { +class base +{ protected: base(); ~base(); + private: base(base const&); base& operator=(base const&); }; -class start: public base {}; +class start : public base +{ +}; diff --git a/test/input/Class-implicit-member-array.cxx b/test/input/Class-implicit-member-array.cxx index 44002dc..6f3520b 100644 --- a/test/input/Class-implicit-member-array.cxx +++ b/test/input/Class-implicit-member-array.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ int data[2]; }; diff --git a/test/input/Class-implicit-member-bad-base.cxx b/test/input/Class-implicit-member-bad-base.cxx index 0a69e73..40f18d6 100644 --- a/test/input/Class-implicit-member-bad-base.cxx +++ b/test/input/Class-implicit-member-bad-base.cxx @@ -1,9 +1,11 @@ -template class base { +template +class base +{ protected: T data; base(); - void operator=(base const& a) { - this->data = a.data; - } + void operator=(base const& a) { this->data = a.data; } +}; +class start : public base +{ }; -class start: public base {}; diff --git a/test/input/Class-implicit-member-const-aggregate.cxx b/test/input/Class-implicit-member-const-aggregate.cxx index 76fc8a8..8c45ac2 100644 --- a/test/input/Class-implicit-member-const-aggregate.cxx +++ b/test/input/Class-implicit-member-const-aggregate.cxx @@ -1,3 +1,4 @@ -struct start { +struct start +{ int const data; }; diff --git a/test/input/Class-implicit-member-const.cxx b/test/input/Class-implicit-member-const.cxx index 59221af..7c5c73b 100644 --- a/test/input/Class-implicit-member-const.cxx +++ b/test/input/Class-implicit-member-const.cxx @@ -1,5 +1,7 @@ -class start { +class start +{ int const data; + public: start(); }; diff --git a/test/input/Class-implicit-member-reference.cxx b/test/input/Class-implicit-member-reference.cxx index 67da21d..b84bbda 100644 --- a/test/input/Class-implicit-member-reference.cxx +++ b/test/input/Class-implicit-member-reference.cxx @@ -1,5 +1,7 @@ -class start { +class start +{ int& ref; + public: start(); }; diff --git a/test/input/Class-implicit-members.cxx b/test/input/Class-implicit-members.cxx index 2d79ee5..2c977d1 100644 --- a/test/input/Class-implicit-members.cxx +++ b/test/input/Class-implicit-members.cxx @@ -1,5 +1,7 @@ -class start { - start method(start const& x) { +class start +{ + start method(start const& x) + { start s; s = x; return s; diff --git a/test/input/Class-incomplete-twice.cxx b/test/input/Class-incomplete-twice.cxx index 700ef6a..fb3368c 100644 --- a/test/input/Class-incomplete-twice.cxx +++ b/test/input/Class-incomplete-twice.cxx @@ -1,4 +1,4 @@ namespace start { - class A; - class A; +class A; +class A; } diff --git a/test/input/Class-member-template-access.cxx b/test/input/Class-member-template-access.cxx index 1bcead7..b098ebd 100644 --- a/test/input/Class-member-template-access.cxx +++ b/test/input/Class-member-template-access.cxx @@ -1,5 +1,10 @@ -class start { - template class member {}; +class start +{ + template + class member + { + }; + public: typedef member member_char; // incomplete }; diff --git a/test/input/Class-member-template.cxx b/test/input/Class-member-template.cxx index 8ffb3d6..a320d8b 100644 --- a/test/input/Class-member-template.cxx +++ b/test/input/Class-member-template.cxx @@ -1,4 +1,9 @@ -class start { - template T method(T v) { return v; } +class start +{ + template + T method(T v) + { + return v; + } }; template int start::method(int); // instantiation diff --git a/test/input/Class-partial-template-member-Typedef.cxx b/test/input/Class-partial-template-member-Typedef.cxx index f4bbf0a..ab71f5c 100644 --- a/test/input/Class-partial-template-member-Typedef.cxx +++ b/test/input/Class-partial-template-member-Typedef.cxx @@ -1,6 +1,10 @@ -template class start; -template class start { +template +class start; +template +class start +{ typedef T Int; + public: T method(Int); }; diff --git a/test/input/Class-template-Method-Argument-const.cxx b/test/input/Class-template-Method-Argument-const.cxx index 76c6c4b..424070c 100644 --- a/test/input/Class-template-Method-Argument-const.cxx +++ b/test/input/Class-template-Method-Argument-const.cxx @@ -1,4 +1,6 @@ -template class start { +template +class start +{ void method(T const&); }; template class start; // instantiation diff --git a/test/input/Class-template-Method-Argument-default.cxx b/test/input/Class-template-Method-Argument-default.cxx index cc928b5..aa6b6a5 100644 --- a/test/input/Class-template-Method-Argument-default.cxx +++ b/test/input/Class-template-Method-Argument-default.cxx @@ -1,4 +1,6 @@ -template class start { +template +class start +{ int method(int = 123); }; template class start; // instantiation diff --git a/test/input/Class-template-Method-return-const.cxx b/test/input/Class-template-Method-return-const.cxx index 28063b4..ac52b15 100644 --- a/test/input/Class-template-Method-return-const.cxx +++ b/test/input/Class-template-Method-return-const.cxx @@ -1,4 +1,6 @@ -template class start { +template +class start +{ T const method(); }; template class start; // instantiation diff --git a/test/input/Class-template-bases.cxx b/test/input/Class-template-bases.cxx index e4db66d..b446021 100644 --- a/test/input/Class-template-bases.cxx +++ b/test/input/Class-template-bases.cxx @@ -1,4 +1,12 @@ -class non_dependent_base {}; -template class dependent_base {}; -template class start: public non_dependent_base, public dependent_base {}; +class non_dependent_base +{ +}; +template +class dependent_base +{ +}; +template +class start : public non_dependent_base, public dependent_base +{ +}; template class start; // instantiation diff --git a/test/input/Class-template-constructor-template.cxx b/test/input/Class-template-constructor-template.cxx index 1ca5d93..3051e6a 100644 --- a/test/input/Class-template-constructor-template.cxx +++ b/test/input/Class-template-constructor-template.cxx @@ -1,6 +1,12 @@ -template class start { +template +class start +{ public: start(start const&); - template start(start const&); + template + start(start const&); }; -start instantiate_and_copy(start const& x) { return x; } +start instantiate_and_copy(start const& x) +{ + return x; +} diff --git a/test/input/Class-template-friends.cxx b/test/input/Class-template-friends.cxx index e1b3166..03057ae 100644 --- a/test/input/Class-template-friends.cxx +++ b/test/input/Class-template-friends.cxx @@ -1,8 +1,13 @@ -template class A; -template int f(T); -template class start { +template +class A; +template +int f(T); +template +class start +{ friend class A; friend int f(T); - template friend int f(U); + template + friend int f(U); }; template class start; diff --git a/test/input/Class-template-member-Typedef-const.cxx b/test/input/Class-template-member-Typedef-const.cxx index f2a21b7..cea165c 100644 --- a/test/input/Class-template-member-Typedef-const.cxx +++ b/test/input/Class-template-member-Typedef-const.cxx @@ -1,5 +1,8 @@ -template class start { +template +class start +{ typedef T IntConst; + public: T method(IntConst); }; diff --git a/test/input/Class-template-member-Typedef.cxx b/test/input/Class-template-member-Typedef.cxx index 07b38c6..462e013 100644 --- a/test/input/Class-template-member-Typedef.cxx +++ b/test/input/Class-template-member-Typedef.cxx @@ -1,5 +1,8 @@ -template class start { +template +class start +{ typedef T Int; + public: T method(Int); }; diff --git a/test/input/Class-template-member-nontemplate-Typedef.cxx b/test/input/Class-template-member-nontemplate-Typedef.cxx index 91ffab3..44c3da1 100644 --- a/test/input/Class-template-member-nontemplate-Typedef.cxx +++ b/test/input/Class-template-member-nontemplate-Typedef.cxx @@ -1,5 +1,8 @@ -template struct A { - struct B { +template +struct A +{ + struct B + { typedef int intermediate_type; typedef intermediate_type type; }; diff --git a/test/input/Class-template-member-template.cxx b/test/input/Class-template-member-template.cxx index 9dc6a54..03bd600 100644 --- a/test/input/Class-template-member-template.cxx +++ b/test/input/Class-template-member-template.cxx @@ -1,4 +1,10 @@ -template class start { - template T method(U) { return T(); } +template +class start +{ + template + T method(U) + { + return T(); + } }; template int start::method(char); // instantiation diff --git a/test/input/Class-template-recurse.cxx b/test/input/Class-template-recurse.cxx index 37c73e0..0523a5d 100644 --- a/test/input/Class-template-recurse.cxx +++ b/test/input/Class-template-recurse.cxx @@ -1,10 +1,17 @@ -template struct A; -template struct C; -template struct B { +template +struct A; +template +struct C; +template +struct B +{ typedef C type; }; -template struct C { - C() { +template +struct C +{ + C() + { /* clang-format off */ static_cast(sizeof(typename B< A >::type)); /* clang-format on */ diff --git a/test/input/Class-template.cxx b/test/input/Class-template.cxx index 7bfa22f..724c612 100644 --- a/test/input/Class-template.cxx +++ b/test/input/Class-template.cxx @@ -1,5 +1,12 @@ -template class start {}; -template struct start {}; // partial specialization -template <> class start; // specialization -template class start; // instantiation +template +class start +{ +}; +template +struct start +{ +}; // partial specialization +template <> +class start; // specialization +template class start; // instantiation template class start; // instantiation of partial specialization diff --git a/test/input/Class.cxx b/test/input/Class.cxx index 92a7e59..957148d 100644 --- a/test/input/Class.cxx +++ b/test/input/Class.cxx @@ -1 +1,3 @@ -class start {}; +class start +{ +}; diff --git a/test/input/Constructor-annotate.cxx b/test/input/Constructor-annotate.cxx index 94cf13e..91b5692 100644 --- a/test/input/Constructor-annotate.cxx +++ b/test/input/Constructor-annotate.cxx @@ -1,3 +1,4 @@ -class start { - __attribute__ ((annotate ("an annotation"))) start(); +class start +{ + __attribute__((annotate("an annotation"))) start(); }; diff --git a/test/input/Constructor.cxx b/test/input/Constructor.cxx index e6e7948..46cf26c 100644 --- a/test/input/Constructor.cxx +++ b/test/input/Constructor.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ start(); }; diff --git a/test/input/Converter-annotate.cxx b/test/input/Converter-annotate.cxx index 2e4a915..836d08f 100644 --- a/test/input/Converter-annotate.cxx +++ b/test/input/Converter-annotate.cxx @@ -1,3 +1,4 @@ -class start { - __attribute__ ((annotate ("an annotation"))) operator int(); +class start +{ + __attribute__((annotate("an annotation"))) operator int(); }; diff --git a/test/input/Converter.cxx b/test/input/Converter.cxx index 64bad53..b0224f4 100644 --- a/test/input/Converter.cxx +++ b/test/input/Converter.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ operator int(); }; diff --git a/test/input/Destructor-annotate.cxx b/test/input/Destructor-annotate.cxx index f2c59f1..71481e5 100644 --- a/test/input/Destructor-annotate.cxx +++ b/test/input/Destructor-annotate.cxx @@ -1,3 +1,4 @@ -class start { - __attribute__ ((annotate ("an annotation"))) ~start(); +class start +{ + __attribute__((annotate("an annotation"))) ~start(); }; diff --git a/test/input/Destructor.cxx b/test/input/Destructor.cxx index 6a42e1a..864b3dd 100644 --- a/test/input/Destructor.cxx +++ b/test/input/Destructor.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ ~start(); }; diff --git a/test/input/Enumeration-annotate.cxx b/test/input/Enumeration-annotate.cxx index fd2c9a3..20559c7 100644 --- a/test/input/Enumeration-annotate.cxx +++ b/test/input/Enumeration-annotate.cxx @@ -1,3 +1,4 @@ -enum __attribute__ ((annotate ("an annotation"))) start { - ev0 __attribute__ ((annotate ("an annotation"))) +enum __attribute__((annotate("an annotation"))) start +{ + ev0 __attribute__((annotate("an annotation"))) }; diff --git a/test/input/Enumeration-anonymous.cxx b/test/input/Enumeration-anonymous.cxx index f1325d1..c813534 100644 --- a/test/input/Enumeration-anonymous.cxx +++ b/test/input/Enumeration-anonymous.cxx @@ -1,6 +1,7 @@ namespace start { - enum { - ev0, - ev1 - }; +enum +{ + ev0, + ev1 +}; } diff --git a/test/input/Enumeration.cxx b/test/input/Enumeration.cxx index 1cdd25c..5bc2886 100644 --- a/test/input/Enumeration.cxx +++ b/test/input/Enumeration.cxx @@ -1,4 +1,5 @@ -enum start { +enum start +{ ev0, ev2 = 2 }; diff --git a/test/input/Field-annotate.cxx b/test/input/Field-annotate.cxx index 917e96f..2ebe946 100644 --- a/test/input/Field-annotate.cxx +++ b/test/input/Field-annotate.cxx @@ -1,3 +1,4 @@ -class start { - __attribute__ ((annotate ("an annotation"))) int field; +class start +{ + __attribute__((annotate("an annotation"))) int field; }; diff --git a/test/input/Field.cxx b/test/input/Field.cxx index d8efaf9..73cfe6d 100644 --- a/test/input/Field.cxx +++ b/test/input/Field.cxx @@ -1,5 +1,6 @@ -class start { +class start +{ int field; - unsigned bit_field: 2; + unsigned bit_field : 2; mutable int mutable_field; }; diff --git a/test/input/Function-Argument-annotate.cxx b/test/input/Function-Argument-annotate.cxx index 3ea09ad..a9176ba 100644 --- a/test/input/Function-Argument-annotate.cxx +++ b/test/input/Function-Argument-annotate.cxx @@ -1 +1 @@ -void start( __attribute__ ((annotate ("an annotation"))) int); +void start(__attribute__((annotate("an annotation"))) int); diff --git a/test/input/Function-Argument-default-cast.cxx b/test/input/Function-Argument-default-cast.cxx index 09ff46b..003ab9c 100644 --- a/test/input/Function-Argument-default-cast.cxx +++ b/test/input/Function-Argument-default-cast.cxx @@ -1,13 +1,16 @@ namespace start { - struct Base { Base(); virtual ~Base(); }; - struct Derived: public Base {}; - Base* b(); - Base const* bc(); - typedef int Int; - void f(Int = (Int)0, - Base* = (Base*)0, - Base* = static_cast(0), - Base* = reinterpret_cast(0), - Base* = const_cast(bc()), - Derived* = dynamic_cast(b())); +struct Base +{ + Base(); + virtual ~Base(); +}; +struct Derived : public Base +{ +}; +Base* b(); +Base const* bc(); +typedef int Int; +void f(Int = (Int)0, Base* = (Base*)0, Base* = static_cast(0), + Base* = reinterpret_cast(0), Base* = const_cast(bc()), + Derived* = dynamic_cast(b())); } diff --git a/test/input/Function-Argument-default-ns.cxx b/test/input/Function-Argument-default-ns.cxx index b2fc53e..74370b9 100644 --- a/test/input/Function-Argument-default-ns.cxx +++ b/test/input/Function-Argument-default-ns.cxx @@ -1,5 +1,8 @@ namespace start { - static int const C = 0; - enum { E = 0 }; - void f(int = C, int = E); +static int const C = 0; +enum +{ + E = 0 +}; +void f(int = C, int = E); } diff --git a/test/input/Function-annotate.cxx b/test/input/Function-annotate.cxx index d7aaf79..15583bf 100644 --- a/test/input/Function-annotate.cxx +++ b/test/input/Function-annotate.cxx @@ -1 +1 @@ -__attribute__ ((annotate ("an annotation"))) void start(int); +__attribute__((annotate("an annotation"))) void start(int); diff --git a/test/input/Function-calling-convention-ms-annotate.cxx b/test/input/Function-calling-convention-ms-annotate.cxx index 4803dd8..668fcb0 100644 --- a/test/input/Function-calling-convention-ms-annotate.cxx +++ b/test/input/Function-calling-convention-ms-annotate.cxx @@ -1,4 +1,8 @@ -__attribute__ ((annotate ("an annotation"))) void __cdecl start(void (__cdecl *)()); -__attribute__ ((annotate ("an annotation"))) void __stdcall start(void (__stdcall *)()); -__attribute__ ((annotate ("an annotation"))) void __fastcall start(void (__fastcall *)()); -__attribute__ ((annotate ("an annotation"))) void __thiscall start(void (__thiscall *)()); +__attribute__((annotate("an annotation"))) void __cdecl start( + void(__cdecl*)()); +__attribute__((annotate("an annotation"))) void __stdcall start( + void(__stdcall*)()); +__attribute__((annotate("an annotation"))) void __fastcall start( + void(__fastcall*)()); +__attribute__((annotate("an annotation"))) void __thiscall start( + void(__thiscall*)()); diff --git a/test/input/Function-calling-convention-ms.cxx b/test/input/Function-calling-convention-ms.cxx index fac3c42..667453d 100644 --- a/test/input/Function-calling-convention-ms.cxx +++ b/test/input/Function-calling-convention-ms.cxx @@ -1,4 +1,4 @@ -void __cdecl start(void (__cdecl *)()); -void __stdcall start(void (__stdcall *)()); -void __fastcall start(void (__fastcall *)()); -void __thiscall start(void (__thiscall *)()); +void __cdecl start(void(__cdecl*)()); +void __stdcall start(void(__stdcall*)()); +void __fastcall start(void(__fastcall*)()); +void __thiscall start(void(__thiscall*)()); diff --git a/test/input/Function-template.cxx b/test/input/Function-template.cxx index cd4b913..4d16f5f 100644 --- a/test/input/Function-template.cxx +++ b/test/input/Function-template.cxx @@ -1,3 +1,8 @@ -template T start(T) { return T(); } -template <> char start(char); // specialization +template +T start(T) +{ + return T(); +} +template <> +char start(char); // specialization template int start(int); // instantiation diff --git a/test/input/Function-variadic.cxx b/test/input/Function-variadic.cxx index 2a2510b..2cafe90 100644 --- a/test/input/Function-variadic.cxx +++ b/test/input/Function-variadic.cxx @@ -1 +1 @@ -void start(int,...); +void start(int, ...); diff --git a/test/input/FunctionType-variadic.cxx b/test/input/FunctionType-variadic.cxx index 90b9294..713703d 100644 --- a/test/input/FunctionType-variadic.cxx +++ b/test/input/FunctionType-variadic.cxx @@ -1 +1 @@ -typedef void start(int,...); +typedef void start(int, ...); diff --git a/test/input/FundamentalTypes.cxx b/test/input/FundamentalTypes.cxx index 7ec7c53..93f3c3a 100644 --- a/test/input/FundamentalTypes.cxx +++ b/test/input/FundamentalTypes.cxx @@ -1,15 +1,15 @@ namespace start { - typedef char t_Char; - typedef signed char t_SChar; - typedef unsigned char t_UChar; - typedef short t_Short; - typedef unsigned short t_UShort; - typedef int t_Int; - typedef unsigned int t_UInt; - typedef long t_Long; - typedef unsigned long t_ULong; - typedef long long t_LongLong; - typedef unsigned long long t_ULongLong; - typedef float t_Float; - typedef double t_Double; +typedef char t_Char; +typedef signed char t_SChar; +typedef unsigned char t_UChar; +typedef short t_Short; +typedef unsigned short t_UShort; +typedef int t_Int; +typedef unsigned int t_UInt; +typedef long t_Long; +typedef unsigned long t_ULong; +typedef long long t_LongLong; +typedef unsigned long long t_ULongLong; +typedef float t_Float; +typedef double t_Double; } diff --git a/test/input/GNU-float128.cxx b/test/input/GNU-float128.cxx index 183ada9..e976f4b 100644 --- a/test/input/GNU-float128.cxx +++ b/test/input/GNU-float128.cxx @@ -1,6 +1,7 @@ -template struct A; +template +struct A; namespace start { - __float128 f(__float128); - __float128 v; - A<__float128>* pa; +__float128 f(__float128); +__float128 v; +A<__float128>* pa; } diff --git a/test/input/GNU-va_arg_pack.cxx b/test/input/GNU-va_arg_pack.cxx index 7a437cf..ed93e53 100644 --- a/test/input/GNU-va_arg_pack.cxx +++ b/test/input/GNU-va_arg_pack.cxx @@ -1,3 +1,4 @@ -__inline int start(int n, ...) { +__inline int start(int n, ...) +{ return start(n + __builtin_va_arg_pack_len(), __builtin_va_arg_pack()); } diff --git a/test/input/Method-Argument-default-cast.cxx b/test/input/Method-Argument-default-cast.cxx index 903b622..b7c0d8c 100644 --- a/test/input/Method-Argument-default-cast.cxx +++ b/test/input/Method-Argument-default-cast.cxx @@ -1,8 +1,7 @@ -class start { +class start +{ class Class; typedef int Int; - int f(Int = (Int)0, - Class* = (Class*)0, - Class* = static_cast(0), + int f(Int = (Int)0, Class* = (Class*)0, Class* = static_cast(0), Class* = reinterpret_cast(0)); }; diff --git a/test/input/Method-Argument-default.cxx b/test/input/Method-Argument-default.cxx index dfd86ae..b0ee68b 100644 --- a/test/input/Method-Argument-default.cxx +++ b/test/input/Method-Argument-default.cxx @@ -1,4 +1,5 @@ -class start { +class start +{ static int const C = 0; int method(int = C); }; diff --git a/test/input/Method-annotate.cxx b/test/input/Method-annotate.cxx index cbd02cf..13b58b3 100644 --- a/test/input/Method-annotate.cxx +++ b/test/input/Method-annotate.cxx @@ -1,3 +1,4 @@ -class start { - __attribute__ ((annotate ("an annotation"))) int method(int); +class start +{ + __attribute__((annotate("an annotation"))) int method(int); }; diff --git a/test/input/Method-overrides.cxx b/test/input/Method-overrides.cxx index d7e79af..f8dc982 100644 --- a/test/input/Method-overrides.cxx +++ b/test/input/Method-overrides.cxx @@ -1,6 +1,8 @@ -class base { +class base +{ virtual int method(int); }; -class start: public base { +class start : public base +{ virtual int method(int); }; diff --git a/test/input/Method-rvalue-reference.cxx b/test/input/Method-rvalue-reference.cxx index 30c12ee..f3a7a31 100644 --- a/test/input/Method-rvalue-reference.cxx +++ b/test/input/Method-rvalue-reference.cxx @@ -1,4 +1,5 @@ -class start { +class start +{ start(start&); start(start&&); start& operator=(start&); diff --git a/test/input/Method.cxx b/test/input/Method.cxx index eba4254..5fa3b2c 100644 --- a/test/input/Method.cxx +++ b/test/input/Method.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ int method(int); }; diff --git a/test/input/MethodType-cv.cxx b/test/input/MethodType-cv.cxx index 1ab435d..e8f44c9 100644 --- a/test/input/MethodType-cv.cxx +++ b/test/input/MethodType-cv.cxx @@ -1,2 +1,2 @@ class A; -typedef int (A::* const volatile start)(int) const volatile; +typedef int (A::*const volatile start)(int) const volatile; diff --git a/test/input/MethodType.cxx b/test/input/MethodType.cxx index 2f9e67c..85a5d16 100644 --- a/test/input/MethodType.cxx +++ b/test/input/MethodType.cxx @@ -1,2 +1,2 @@ class A; -typedef int (A::* start)(int); +typedef int (A::*start)(int); diff --git a/test/input/Namespace-Class-members.cxx b/test/input/Namespace-Class-members.cxx index 0b196ea..55f6f34 100644 --- a/test/input/Namespace-Class-members.cxx +++ b/test/input/Namespace-Class-members.cxx @@ -1,6 +1,7 @@ namespace start { - class A { - static int data; - }; - int A::data; +class A +{ + static int data; +}; +int A::data; } diff --git a/test/input/Namespace-Class-partial-template-members.cxx b/test/input/Namespace-Class-partial-template-members.cxx index 0c220c9..b87f1da 100644 --- a/test/input/Namespace-Class-partial-template-members.cxx +++ b/test/input/Namespace-Class-partial-template-members.cxx @@ -1,7 +1,11 @@ namespace start { - template class A; - template class A { - static int data; - }; - template int A::data; +template +class A; +template +class A +{ + static int data; +}; +template +int A::data; } diff --git a/test/input/Namespace-Class-template-members.cxx b/test/input/Namespace-Class-template-members.cxx index 5367a14..23131d7 100644 --- a/test/input/Namespace-Class-template-members.cxx +++ b/test/input/Namespace-Class-template-members.cxx @@ -1,6 +1,9 @@ namespace start { - template class A { - static int data; - }; - template int A::data; +template +class A +{ + static int data; +}; +template +int A::data; } diff --git a/test/input/Namespace-Function-template-members.cxx b/test/input/Namespace-Function-template-members.cxx index 925281f..d149de3 100644 --- a/test/input/Namespace-Function-template-members.cxx +++ b/test/input/Namespace-Function-template-members.cxx @@ -1,3 +1,4 @@ namespace start { - template T function(T); +template +T function(T); } diff --git a/test/input/Namespace-anonymous.cxx b/test/input/Namespace-anonymous.cxx index f35a1ab..61cbe65 100644 --- a/test/input/Namespace-anonymous.cxx +++ b/test/input/Namespace-anonymous.cxx @@ -1,5 +1,5 @@ namespace start { - namespace { - struct A; - } +namespace { +struct A; +} } diff --git a/test/input/Namespace-empty.cxx b/test/input/Namespace-empty.cxx index 7aada05..90cb9ff 100644 --- a/test/input/Namespace-empty.cxx +++ b/test/input/Namespace-empty.cxx @@ -1,3 +1,3 @@ namespace start { - ; +; } diff --git a/test/input/Namespace-extern-C-members.cxx b/test/input/Namespace-extern-C-members.cxx index debf987..68fb48a 100644 --- a/test/input/Namespace-extern-C-members.cxx +++ b/test/input/Namespace-extern-C-members.cxx @@ -1,6 +1,6 @@ namespace start { - extern "C" { - typedef int Int; - Int function(Int); - } +extern "C" { +typedef int Int; +Int function(Int); +} } diff --git a/test/input/Namespace-inline-start.cxx b/test/input/Namespace-inline-start.cxx index 35f05bc..a8e71da 100644 --- a/test/input/Namespace-inline-start.cxx +++ b/test/input/Namespace-inline-start.cxx @@ -1,2 +1,3 @@ #pragma clang diagnostic ignored "-Wc++11-extensions" -inline namespace start {} +inline namespace start { +} diff --git a/test/input/Namespace-inline-template.cxx b/test/input/Namespace-inline-template.cxx index fc38a46..f0e66d0 100644 --- a/test/input/Namespace-inline-template.cxx +++ b/test/input/Namespace-inline-template.cxx @@ -1,8 +1,9 @@ #pragma clang diagnostic ignored "-Wc++11-extensions" namespace start { - inline namespace level1 { - struct A; - } - template struct B; - typedef B B_A; +inline namespace level1 { +struct A; +} +template +struct B; +typedef B B_A; } diff --git a/test/input/Namespace-inline.cxx b/test/input/Namespace-inline.cxx index 9569ad3..3df5602 100644 --- a/test/input/Namespace-inline.cxx +++ b/test/input/Namespace-inline.cxx @@ -1,9 +1,9 @@ #pragma clang diagnostic ignored "-Wc++11-extensions" namespace start { - inline namespace level1 { - struct A; - inline namespace level2 { - struct B; - } - } +inline namespace level1 { +struct A; +inline namespace level2 { +struct B; +} +} } diff --git a/test/input/Namespace-nested.cxx b/test/input/Namespace-nested.cxx index 495208f..5e3afa5 100644 --- a/test/input/Namespace-nested.cxx +++ b/test/input/Namespace-nested.cxx @@ -1,11 +1,11 @@ namespace start { - namespace ns1 { - void f1(); - } - namespace ns2 { - void f2(); - } - namespace ns3 { - void f3(); - } +namespace ns1 { +void f1(); +} +namespace ns2 { +void f2(); +} +namespace ns3 { +void f3(); +} } diff --git a/test/input/Namespace-repeat-start.cxx b/test/input/Namespace-repeat-start.cxx index feb9d5c..0ce6793 100644 --- a/test/input/Namespace-repeat-start.cxx +++ b/test/input/Namespace-repeat-start.cxx @@ -1,6 +1,6 @@ namespace start { - void f1(); +void f1(); } namespace start { - void f2(); +void f2(); } diff --git a/test/input/Namespace-repeat.cxx b/test/input/Namespace-repeat.cxx index 00f3d38..bc5221c 100644 --- a/test/input/Namespace-repeat.cxx +++ b/test/input/Namespace-repeat.cxx @@ -1,8 +1,8 @@ namespace start { - namespace ns { - void f1(); - } - namespace ns { - void f2(); - } +namespace ns { +void f1(); +} +namespace ns { +void f2(); +} } diff --git a/test/input/Namespace.cxx b/test/input/Namespace.cxx index a3102e6..9071a9f 100644 --- a/test/input/Namespace.cxx +++ b/test/input/Namespace.cxx @@ -1 +1,2 @@ -namespace start {} +namespace start { +} diff --git a/test/input/OffsetType-cv.cxx b/test/input/OffsetType-cv.cxx index efbc605..c555de4 100644 --- a/test/input/OffsetType-cv.cxx +++ b/test/input/OffsetType-cv.cxx @@ -1,2 +1,2 @@ class A; -typedef int const volatile A::* const volatile start; +typedef int const volatile A::*const volatile start; diff --git a/test/input/OffsetType.cxx b/test/input/OffsetType.cxx index 5a030d5..6326230 100644 --- a/test/input/OffsetType.cxx +++ b/test/input/OffsetType.cxx @@ -1,2 +1,2 @@ class A; -typedef int A::* start; +typedef int A::*start; diff --git a/test/input/OperatorFunction-annotate.cxx b/test/input/OperatorFunction-annotate.cxx index bbb3bf9..e255b58 100644 --- a/test/input/OperatorFunction-annotate.cxx +++ b/test/input/OperatorFunction-annotate.cxx @@ -1,4 +1,4 @@ class A; namespace start { - __attribute__ ((annotate ("an annotation"))) A& operator<<(A&, int); +__attribute__((annotate("an annotation"))) A& operator<<(A&, int); } diff --git a/test/input/OperatorFunction.cxx b/test/input/OperatorFunction.cxx index 75125a2..0c0d222 100644 --- a/test/input/OperatorFunction.cxx +++ b/test/input/OperatorFunction.cxx @@ -1,4 +1,4 @@ class A; namespace start { - A& operator<<(A&, int); +A& operator<<(A&, int); } diff --git a/test/input/OperatorMethod-annotate.cxx b/test/input/OperatorMethod-annotate.cxx index 3384ece..543af88 100644 --- a/test/input/OperatorMethod-annotate.cxx +++ b/test/input/OperatorMethod-annotate.cxx @@ -1,3 +1,4 @@ -class start { - __attribute__ ((annotate ("an annotation"))) start& operator<<(int); +class start +{ + __attribute__((annotate("an annotation"))) start& operator<<(int); }; diff --git a/test/input/OperatorMethod.cxx b/test/input/OperatorMethod.cxx index 36a76c2..c05c431 100644 --- a/test/input/OperatorMethod.cxx +++ b/test/input/OperatorMethod.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ start& operator<<(int); }; diff --git a/test/input/PointerType.cxx b/test/input/PointerType.cxx index 46d5fee..936ea49 100644 --- a/test/input/PointerType.cxx +++ b/test/input/PointerType.cxx @@ -1 +1 @@ -typedef int *start; +typedef int* start; diff --git a/test/input/RValueReferenceType.cxx b/test/input/RValueReferenceType.cxx index 35f2861..1dc1d14 100644 --- a/test/input/RValueReferenceType.cxx +++ b/test/input/RValueReferenceType.cxx @@ -1,3 +1,3 @@ namespace start { - typedef int&& type; +typedef int&& type; } diff --git a/test/input/ReferenceType-to-Class-template.cxx b/test/input/ReferenceType-to-Class-template.cxx index 2bf8bbb..74ed2a3 100644 --- a/test/input/ReferenceType-to-Class-template.cxx +++ b/test/input/ReferenceType-to-Class-template.cxx @@ -1,4 +1,7 @@ -template class A {}; +template +class A +{ +}; void start(A&, short); void start(A&, int); void start(A&, long); diff --git a/test/input/ReferenceType.cxx b/test/input/ReferenceType.cxx index 6cfa692..80646f6 100644 --- a/test/input/ReferenceType.cxx +++ b/test/input/ReferenceType.cxx @@ -1 +1 @@ -typedef int &start; +typedef int& start; diff --git a/test/input/TypeAlias.cxx b/test/input/TypeAlias.cxx index 8e5470c..d86a77c 100644 --- a/test/input/TypeAlias.cxx +++ b/test/input/TypeAlias.cxx @@ -1,3 +1,3 @@ namespace start { - using type = int; +using type = int; } diff --git a/test/input/TypeAliasTemplate.cxx b/test/input/TypeAliasTemplate.cxx index ec54f80..57a7838 100644 --- a/test/input/TypeAliasTemplate.cxx +++ b/test/input/TypeAliasTemplate.cxx @@ -1,4 +1,9 @@ -template struct A { typedef T type; }; +template +struct A +{ + typedef T type; +}; namespace start { - template using type = typename A::type; +template +using type = typename A::type; } diff --git a/test/input/Typedef-annotate.cxx b/test/input/Typedef-annotate.cxx index 33dd09c..731f1e6 100644 --- a/test/input/Typedef-annotate.cxx +++ b/test/input/Typedef-annotate.cxx @@ -1 +1 @@ -typedef int (start) __attribute__ ((annotate ("an annotation"))); +typedef int(start) __attribute__((annotate("an annotation"))); diff --git a/test/input/Typedef-paren.cxx b/test/input/Typedef-paren.cxx index 8b8b301..24bc9bf 100644 --- a/test/input/Typedef-paren.cxx +++ b/test/input/Typedef-paren.cxx @@ -1 +1 @@ -typedef int (start); +typedef int(start); diff --git a/test/input/Typedef-to-Class-template.cxx b/test/input/Typedef-to-Class-template.cxx index f04a56e..c91b972 100644 --- a/test/input/Typedef-to-Class-template.cxx +++ b/test/input/Typedef-to-Class-template.cxx @@ -1,2 +1,3 @@ -template class A; +template +class A; typedef A start; diff --git a/test/input/Typedef-to-Enumeration-anonymous.cxx b/test/input/Typedef-to-Enumeration-anonymous.cxx index cf5f26f..efcbc45 100644 --- a/test/input/Typedef-to-Enumeration-anonymous.cxx +++ b/test/input/Typedef-to-Enumeration-anonymous.cxx @@ -1,2 +1 @@ -typedef enum { -} start; +typedef enum {} start; diff --git a/test/input/Typedef-to-Enumeration.cxx b/test/input/Typedef-to-Enumeration.cxx index 9a1db81..38743f4 100644 --- a/test/input/Typedef-to-Enumeration.cxx +++ b/test/input/Typedef-to-Enumeration.cxx @@ -1,2 +1,4 @@ -enum E {}; +enum E +{ +}; typedef E start; diff --git a/test/input/Typedef-to-FundamentalType-mode.cxx b/test/input/Typedef-to-FundamentalType-mode.cxx index 03869e9..6b76163 100644 --- a/test/input/Typedef-to-FundamentalType-mode.cxx +++ b/test/input/Typedef-to-FundamentalType-mode.cxx @@ -1 +1 @@ -typedef int start __attribute__ ((__mode__ (__HI__))); +typedef int start __attribute__((__mode__(__HI__))); diff --git a/test/input/Typedef-to-extern-C-FundamentalType-mode.cxx b/test/input/Typedef-to-extern-C-FundamentalType-mode.cxx index 3e966f0..371bcaf 100644 --- a/test/input/Typedef-to-extern-C-FundamentalType-mode.cxx +++ b/test/input/Typedef-to-extern-C-FundamentalType-mode.cxx @@ -1,3 +1,3 @@ extern "C" { - typedef int start __attribute__ ((__mode__ (__HI__))); +typedef int start __attribute__((__mode__(__HI__))); } diff --git a/test/input/Variable-annotate.cxx b/test/input/Variable-annotate.cxx index 0f044ec..bbe7f63 100644 --- a/test/input/Variable-annotate.cxx +++ b/test/input/Variable-annotate.cxx @@ -1 +1 @@ -__attribute__ ((annotate ("an annotation"))) int start; +__attribute__((annotate("an annotation"))) int start; diff --git a/test/input/Variable-in-Class.cxx b/test/input/Variable-in-Class.cxx index 2aa9004..e10d058 100644 --- a/test/input/Variable-in-Class.cxx +++ b/test/input/Variable-in-Class.cxx @@ -1,3 +1,4 @@ -class start { +class start +{ static int static_field; }; diff --git a/test/input/Variable-init-cast.cxx b/test/input/Variable-init-cast.cxx index 80dbb0f..c5d664c 100644 --- a/test/input/Variable-init-cast.cxx +++ b/test/input/Variable-init-cast.cxx @@ -1,5 +1,5 @@ namespace start { - typedef int Int; - int var_int = (Int)123; - int var_int2 = static_cast(123); +typedef int Int; +int var_int = (Int)123; +int var_int2 = static_cast(123); } diff --git a/test/input/Variable-init-ns.cxx b/test/input/Variable-init-ns.cxx index 0f5311c..72bdc2f 100644 --- a/test/input/Variable-init-ns.cxx +++ b/test/input/Variable-init-ns.cxx @@ -1,4 +1,4 @@ namespace start { - static int const C = 123; - int var_int = C; +static int const C = 123; +int var_int = C; } diff --git a/test/input/Variable-init.cxx b/test/input/Variable-init.cxx index 79b05cf..c2ef751 100644 --- a/test/input/Variable-init.cxx +++ b/test/input/Variable-init.cxx @@ -1,4 +1,4 @@ namespace start { - int var_int = 123; - const char* var_str = "abc"; +int var_int = 123; +const char* var_str = "abc"; } diff --git a/test/input/inline-asm-ms.cxx b/test/input/inline-asm-ms.cxx index 1454d85..d9a83a4 100644 --- a/test/input/inline-asm-ms.cxx +++ b/test/input/inline-asm-ms.cxx @@ -1 +1,4 @@ -void start() { __asm { int 1 } } +void start() +{ + __asm { int 1 } +} diff --git a/test/input/invalid-decl-for-type.cxx b/test/input/invalid-decl-for-type.cxx index 5c2225f..2eb8a3e 100644 --- a/test/input/invalid-decl-for-type.cxx +++ b/test/input/invalid-decl-for-type.cxx @@ -1,7 +1,16 @@ -template struct A { T x; }; -template struct B { B() { A a; } }; +template +struct A +{ + T x; +}; +template +struct B +{ + B() { A a; } +}; struct Incomplete; -struct start { +struct start +{ B b; typedef A type; }; diff --git a/test/input/make_integer_seq.cxx b/test/input/make_integer_seq.cxx index 44a89a8..ec5c408 100644 --- a/test/input/make_integer_seq.cxx +++ b/test/input/make_integer_seq.cxx @@ -1,6 +1,11 @@ -template struct seq; +template +struct seq; typedef __make_integer_seq seq_A; -typedef seq seq_B; -template struct assert_same; -template struct assert_same {}; -assert_same enforce; +typedef seq seq_B; +template +struct assert_same; +template +struct assert_same +{ +}; +assert_same enforce; diff --git a/test/input/nostart.cxx b/test/input/nostart.cxx index 37374bc..ad9b995 100644 --- a/test/input/nostart.cxx +++ b/test/input/nostart.cxx @@ -1,2 +1,2 @@ class A; -A operator+(A,A); +A operator+(A, A); diff --git a/test/input/qualified-type-name.cxx b/test/input/qualified-type-name.cxx index ea0f4b2..ebba546 100644 --- a/test/input/qualified-type-name.cxx +++ b/test/input/qualified-type-name.cxx @@ -1,2 +1,4 @@ -namespace ns { typedef int type; } +namespace ns { +typedef int type; +} typedef ns::type start; diff --git a/test/input/using-declaration-class.cxx b/test/input/using-declaration-class.cxx index 7b5ad6b..b63a8c1 100644 --- a/test/input/using-declaration-class.cxx +++ b/test/input/using-declaration-class.cxx @@ -1,8 +1,10 @@ -class base { +class base +{ protected: int f(int); }; -class start: public base { +class start : public base +{ using base::f; int f(char); }; diff --git a/test/input/using-declaration-ns.cxx b/test/input/using-declaration-ns.cxx index 1629a8b..04e8637 100644 --- a/test/input/using-declaration-ns.cxx +++ b/test/input/using-declaration-ns.cxx @@ -1,4 +1,4 @@ class A; namespace start { - using ::A; +using ::A; } diff --git a/test/input/using-declaration-start.cxx b/test/input/using-declaration-start.cxx index 9d732d0..efb8912 100644 --- a/test/input/using-declaration-start.cxx +++ b/test/input/using-declaration-start.cxx @@ -1,4 +1,4 @@ namespace N { - class start; +class start; } using N::start; diff --git a/test/input/using-directive-ns.cxx b/test/input/using-directive-ns.cxx index 937b851..b3519ea 100644 --- a/test/input/using-directive-ns.cxx +++ b/test/input/using-directive-ns.cxx @@ -1,6 +1,6 @@ namespace N { - class A; +class A; } namespace start { - using namespace N; +using namespace N; } diff --git a/test/input/using-directive-start.cxx b/test/input/using-directive-start.cxx index 1e69a1b..5a4c0cb 100644 --- a/test/input/using-directive-start.cxx +++ b/test/input/using-directive-start.cxx @@ -1,4 +1,4 @@ namespace A { - class start; +class start; } using namespace A; -- cgit v0.12