Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 342683 - Update gcc builtin symbol provider
Summary: Update gcc builtin symbol provider
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-parser (show other bugs)
Version: 8.0   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 8.0   Edit
Assignee: Markus Schorn CLA
QA Contact: Markus Schorn CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 381000
  Show dependency tree
 
Reported: 2011-04-13 05:14 EDT by Markus Schorn CLA
Modified: 2012-05-30 10:26 EDT (History)
2 users (show)

See Also:


Attachments
Simplifies the builtin symbol provider, adds a few builtins. (176.39 KB, patch)
2011-04-14 09:45 EDT, Markus Schorn CLA
mschorn.eclipse: iplog-
Details | Diff
testcase + fix for type-traits (41.20 KB, text/plain)
2011-04-15 10:14 EDT, Markus Schorn CLA
mschorn.eclipse: iplog-
Details

Note You need to log in before you can comment on or make changes to this bug.
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