# Symbol clash and undefined behavior in application integrating VTK wigdets

**URL:** https://discourse.vtk.org/t/symbol-clash-and-undefined-behavior-in-application-integrating-vtk-wigdets/7778
**Category:** Development
**Created:** [February 4, 2022, 10:36pm UTC](https://discourse.vtk.org/t/symbol-clash-and-undefined-behavior-in-application-integrating-vtk-wigdets/7778 "2022-02-04T22:36:57Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![jcfr](https://discourse.vtk.org/user_avatar/discourse.vtk.org/jcfr/32/466_2.png) [@jcfr](https://discourse.vtk.org/u/jcfr)
#### Post date: [February 4, 2022, 10:36pm UTC](https://discourse.vtk.org/t/symbol-clash-and-undefined-behavior-in-application-integrating-vtk-wigdets/7778/1 "2022-02-04T22:36:57Z")

</div>

The merge request [MR-8885](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8885) (BUG: Rename vtkInteractionCallback class to avoid symbol clash) has just been submitted to address undefined behavior and crashes in application integrating one of the following VTK widgets:

- `vtkImplicitPlaneWidget2`
- `vtkDisplaySizedImplicitPlaneWidget`
- `vtkCoordinateFrameWidget`

In short, the use of the generic class name `vtkInteractionCallback` in Widgets classes was violating the ODR ([One Definition Rule](https://en.cppreference.com/w/cpp/language/definition)) rule and was leading to undefined behavior.

Full details available at [Transition of nightly build from VTK 9.0.20201111 to 9.1.20220125 - Development - 3D Slicer Community](https://discourse.slicer.org/t/transition-of-nightly-build-from-vtk-9-0-20201111-to-9-1-20220125/21669)

Related issues were also created:

- [#18456](https://gitlab.kitware.com/vtk/vtk/-/issues/18456) (Remove duplicated class vtkTextureArray)
- [#18455](https://gitlab.kitware.com/vtk/vtk/-/issues/18455) (Remove duplicated class vtkmOutputFilterPolicy)

along with suggestion for improving VTK continuous integration infrastructure:

- [#18457](https://gitlab.kitware.com/vtk/vtk/-/issues/18457) (Improve continuous integration to detect duplicated symbols)
