Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 342683

Summary: Update gcc builtin symbol provider
Product: [Tools] CDT Reporter: Markus Schorn <mschorn.eclipse>
Component: cdt-parserAssignee: Markus Schorn <mschorn.eclipse>
Status: RESOLVED FIXED QA Contact: Markus Schorn <mschorn.eclipse>
Severity: normal    
Priority: P3 CC: cdtdoug, malaperle
Version: 8.0   
Target Milestone: 8.0   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on:    
Bug Blocks: 381000    
Attachments:
Description Flags
Simplifies the builtin symbol provider, adds a few builtins.
mschorn.eclipse: iplog-
testcase + fix for type-traits mschorn.eclipse: iplog-

Description Markus Schorn CLA 2011-04-13 05:14:11 EDT
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.
Comment 1 Markus Schorn CLA 2011-04-14 09:45:03 EDT
Created attachment 193254 [details]
Simplifies the builtin symbol provider, adds a few builtins.
Comment 3 Markus Schorn CLA 2011-04-15 10:14:29 EDT
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.
Comment 4 Markus Schorn CLA 2011-04-15 10:19:20 EDT
Done in 8.0 > 20110415.
Comment 5 CDT Genie CLA 2011-04-15 10:23:10 EDT
*** 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