V2.1.14 - #129
Open
RainerZ wants to merge 8 commits into
Open
Conversation
xcpclient: Build warnings removed, README.md updated
- Improved variable registration for global and static variables
- Global variables and local static variables in functions without event trigger are registered, but not associated to any specific default DAQ event
- no_a2l_demo, no_a2l_demo_cpp: more demo cases
… scopes (ELF->A2L) - Struct/class types with the same DWARF name in different namespaces, classes or functions get scope qualified typedef names (motor_control.Input, valve_control.Input). Previously all variables of such types referenced the first registered typedef and were shown with the wrong type. - Typedefs with identical content are merged (same type in several compilation units), a name still used by different content gets a numeric suffix. A type used for measurement and for calibration variables gets separate typedefs. - Global variables with the same name in different namespaces get namespace qualified instance names instead of being dropped as duplicates. - GCC declaration/definition entry pairs of namespace scope variables are merged. - Symbol table address resolution: mangled names for namespace scope statics without DWARF location, only local symbols for function local variables (no more stack variables mapped onto same-named globals). - Metadata macros in the same namespace or function as the variable need no scope prefix (XCP_COMMENT(input, ...) in namespace motor_control annotates motor_control.input), explicit prefixes keep working. Metadata for typedef fields of namespace qualified instances. - Fixture cpp_namespaces.elf and unit tests, README, TECHNICAL.md and CHANGELOG updated. - no_a2l_demo_cpp: same-named types and variables in namespaces with XCP_COMMENT, volatile test_array, regenerated CANape A2L/ELF. - xcpclient version 3.0.10 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…fixtures and tests - DebugData::qualified_type_names is filled once after the types are loaded: it follows const/volatile qualifiers to the named type, finds the names used in more than one scope and stores the dotted name for those types only. DebugData::get_type_name returns it or the plain DWARF name; register_struct keeps only the content signature and the numeric suffix. No change in the generated A2L files. - cpp_namespaces.cpp: volatile and const qualified variables of the colliding Input types - c_local_types_a.c/_b.c: struct tags with the same name but different content in two compilation units, registered as state and state_1 - cpp_type_name_collisions.cpp: fixture contributed with pull request vectorgrp#126 - Unit tests for the three fixtures and for the qualified names at DWARF level Co-Authored-By: Pamir Mundt and Claude Fable 5.1
TECHNICAL.md restructured Different READMEs updated
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
xcpclient related changes:
motor_control.Input,valve_control.Input). Previously all variables of such types referenced the first registered typedef and were shown with the wrong type.motor_control.input,valve_control.input) instead of dropping all but the first oneXCP_COMMENT(motor_control__input, ...)inside a namespace) are resolved by their mangled symbol nameXCP_COMMENT(input, ...)in namespacemotor_controlannotatesmotor_control.input), explicit prefixes keep working. Metadata for the typedef fields of namespace qualified instances.Documentation: new
docs/OFFLINE_A2L.mdfor the offline A2L generation with xcpclient (workflow, naming rules, supported types, diagnostics),docs/TECHNICAL.mdkeeps the library topics and the instrumentation marker contract, xcpclient and no_a2l_demo READMEs updatedFreeRTOS related changes: