Community
Participate
Working Groups
Over the time gcc has added more builtin functions. The provider for that has to be updated. As it is written today it is hard to add new builtins. We need to make it easy to add a new builtin function. Builtin functions sometimes take types as arguments and sometimes they are evaluated at compile time, e.g. type-traits like __is_enum(type). We need support for builtins like that.
Created attachment 193254 [details] Simplifies the builtin symbol provider, adds a few builtins.
*** cdt cvs genie on behalf of mschorn *** Bug 342683: Simplify GCCBuiltinSymbolProvider. [*] GCCBuiltinSymbolProvider.java 1.30 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/GCCBuiltinSymbolProvider.java?root=Tools_Project&r1=1.29&r2=1.30 [*] GCCCompleteParseExtensionsTest.java 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java?root=Tools_Project&r1=1.15&r2=1.16
Created attachment 193379 [details] testcase + fix for type-traits I modelled the type-traits as IASTTypeIdExpression, so that we will be able to evaluate them for template instantiations.
Done in 8.0 > 20110415.
*** cdt cvs genie on behalf of mschorn *** Bug 342683: Support for built-in type-traits. [*] GCCCompleteParseExtensionsTest.java 1.17 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java?root=Tools_Project&r1=1.16&r2=1.17 [*] IASTTypeIdExpression.java 1.11 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTTypeIdExpression.java?root=Tools_Project&r1=1.10&r2=1.11 [+] IASTBinaryTypeIdExpression.java http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTBinaryTypeIdExpression.java?root=Tools_Project&revision=1.1&view=markup [*] ICPPNodeFactory.java 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNodeFactory.java?root=Tools_Project&r1=1.15&r2=1.16 [+] CPPASTBinaryTypeIdExpression.java http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryTypeIdExpression.java?root=Tools_Project&revision=1.1&view=markup [*] CPPASTLiteralExpression.java 1.30 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java?root=Tools_Project&r1=1.29&r2=1.30 [*] CPPASTUnaryExpression.java 1.41 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUnaryExpression.java?root=Tools_Project&r1=1.40&r2=1.41 [*] CPPNodeFactory.java 1.20 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNodeFactory.java?root=Tools_Project&r1=1.19&r2=1.20 [*] CPPASTBinaryExpression.java 1.39 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryExpression.java?root=Tools_Project&r1=1.38&r2=1.39 [*] CPPASTTypeIdExpression.java 1.21 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeIdExpression.java?root=Tools_Project&r1=1.20&r2=1.21 [*] CPPBasicType.java 1.26 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java?root=Tools_Project&r1=1.25&r2=1.26 [*] GNUCPPSourceParser.java 1.249 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java?root=Tools_Project&r1=1.248&r2=1.249 [*] GCCKeywords.java 1.14 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/GCCKeywords.java?root=Tools_Project&r1=1.13&r2=1.14 [*] IGCCToken.java 1.12 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IGCCToken.java?root=Tools_Project&r1=1.11&r2=1.12 [*] BuiltinOperators.java 1.9 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BuiltinOperators.java?root=Tools_Project&r1=1.8&r2=1.9 [*] GNUScannerExtensionConfiguration.java 1.20 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/GNUScannerExtensionConfiguration.java?root=Tools_Project&r1=1.19&r2=1.20 [*] GPPScannerExtensionConfiguration.java 1.9 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/GPPScannerExtensionConfiguration.java?root=Tools_Project&r1=1.8&r2=1.9 [*] GNUScannerExtensionConfiguration.java 1.21 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/GNUScannerExtensionConfiguration.java?root=Tools_Project&r1=1.20&r2=1.21