https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89549
Bug ID: 89549 Summary: -Wmisleading-indentation is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Seen on a test-case that is not having many lines, but one line is very wide: $ cat mi.ii class String { public: bool operator==(char *) const; bool operator!=(char *) ; String() ; String(char *); }; class StringName { public: StringName(char *); }; template <class a> class List { public: void push_back( a ) ; }; class Variant { public: enum b { NIL} ; }; enum c { PROPERTY_HINT_NONE}; enum { PROPERTY_USAGE_CATEGORY }; struct PropertyInfo { PropertyInfo(Variant::b , String , c , String , int ) ; }; class Object { protected: static String _get_category() ; void _set() ; bool _get( StringName , Variant ) const ; void _get_property_list(List<PropertyInfo> *) const ; void _notification(); static void _get_valid_parents_static(List<String> *) ; bool _is_gpl_reversed() const ; }; class ClassDB { public: template <class > void _add_class() ; static void get_property_list(StringName , List<PropertyInfo> *, bool , const Object * ); }; class d : public Object { protected: static void _bind_methods(); }; class AudioStreamPlayback : public d { public: static String get_class_static() ; bool is_class( String ) const ; bool is_class_ptr(void *) const ; static void *_get_bind_methods() ; static void initialize_class() ; bool (Object::*_get_get() const)(const StringName &, Variant &) const ; bool _getv( StringName , Variant ) const ; bool (Object::*_get_set() )(const StringName &, const Variant &) ; bool _setv( StringName , Variant ) ; void (Object::*_get_get_property_list() const)(List<PropertyInfo> * ) const ; void _get_property_listv(List<PropertyInfo> *, bool ) const ; }; String get_category_static_category ; class AudioStreamPlaybackRandomPitch : public AudioStreamPlayback { private: mutable StringName _class_name; friend class ClassDB; public: static inline void *get_class_ptr_static() { static int ptr; return &ptr; } static inline String get_class_static() { return String("AudioStreamPlaybackRandomPitch"); } static inline String get_parent_class_static() { return AudioStreamPlayback::get_class_static(); } static void get_inheritance_list_static(List<String> *p_inheritance_list) { AudioStreamPlayback:get_inheritance_list_static(p_inheritance_list); p_inheritance_list->push_back(String("AudioStreamPlaybackRandomPitch")); } static String get_category_static() { if (_get_category != AudioStreamPlayback::_get_category) { if (get_category_static_category != "") get_category_static_category = ""; get_category_static_category = _get_category(); } return get_category_static_category; } static String inherits_static() { return String("AudioStreamPlayback"); } virtual bool is_class(const String p_class) const { return (p_class == ("AudioStreamPlaybackRandomPitch")) ? true : AudioStreamPlayback::is_class(p_class); } virtual bool is_class_ptr(void *p_ptr) const { return (p_ptr == get_class_ptr_static) ? true : AudioStreamPlayback::is_class_ptr(p_ptr); } static void get_valid_parents_static(List<String> *p_parents) { if (AudioStreamPlaybackRandomPitch::_get_valid_parents_static != AudioStreamPlayback::_get_valid_parents_static) { AudioStreamPlaybackRandomPitch:_get_valid_parents_static(p_parents); } AudioStreamPlayback:get_valid_parents_static(p_parents); } protected: inline static void (*_get_bind_methods())() { return AudioStreamPlaybackRandomPitch::_bind_methods; } public: static void initialize_class() { static bool initialized = false; if (initialized) return AudioStreamPlayback::initialize_class(); ClassDB::_add_class<AudioStreamPlaybackRandomPitch>; if (AudioStreamPlaybackRandomPitch::_get_bind_methods != AudioStreamPlayback::_get_bind_methods()) _bind_methods; initialized = true; } protected: virtual void _initialize_classv() { initialize_class; } inline bool (Object::*_get_get() const)(const StringName &p_name, Variant &) const { return (bool (Object::*)(const StringName &, Variant &) const) & AudioStreamPlaybackRandomPitch::_get; } virtual bool _getv(const StringName p_name, Variant &r_ret) const { if (AudioStreamPlaybackRandomPitch::_get_get() != AudioStreamPlayback::_get_get()) { if (_get(p_name, r_ret)) return true; } return AudioStreamPlayback::_getv(p_name, r_ret); } inline bool (Object::*_get_set() const)(const StringName &p_name, const Variant &p_property) { return (bool (Object::*)(const StringName &, const Variant &)) & AudioStreamPlaybackRandomPitch::_set; } virtual bool _setv(const StringName &p_name, const Variant &p_property) { if (AudioStreamPlayback::_setv(p_name, p_property)) return true; if (AudioStreamPlaybackRandomPitch::_get_set() != AudioStreamPlayback::_get_set()) return false; } inline void (Object::*_get_get_property_list() const)(List<PropertyInfo> * p_list) const { return (void (Object::*)(List<PropertyInfo> *) const) & AudioStreamPlaybackRandomPitch::_get_property_list; } virtual void _get_property_listv(List<PropertyInfo> *p_list, bool p_reversed) const { if (!p_reversed) { AudioStreamPlayback::_get_property_listv(p_list, p_reversed); } p_list->push_back(PropertyInfo(Variant::NIL, get_class_static(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); if (!_is_gpl_reversed()) ClassDB::get_property_list("AudioStreamPlaybackRandomPitch", p_list, true, this); if (AudioStreamPlaybackRandomPitch::_get_get_property_list() != AudioStreamPlayback::_get_get_property_list()) { _get_property_list(p_list); } if (_is_gpl_reversed()) ClassDB::get_property_list("AudioStreamPlaybackRandomPitch", p_list, true, this); if (p_reversed) { AudioStreamPlayback::_get_property_listv(p_list, p_reversed); } } inline void (Object::*_get_notification() const)(int) { return (void (Object::*)(int)) & AudioStreamPlaybackRandomPitch::_notification; } virtual void _notificationv(int p_notification, bool p_reversed) { if (p_reversed) ; p_reversed; } }; $ g++ mi.ii -c -Wmisleading-indentation ... mi.ii: In member function ‘virtual void AudioStreamPlaybackRandomPitch::_notificationv(int, bool)’: mi.ii:13: note: -Wmisleading-indentation is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers class AudioStreamPlaybackRandomPitch : public AudioStreamPlayback { private: mutable StringName _class_name; friend class ClassDB; public: static inline void *get_class_ptr_static() { static int ptr; return &ptr; } static inline String get_class_static() { return String("AudioStreamPlaybackRandomPitch"); } static inline String get_parent_class_static() { return AudioStreamPlayback::get_class_static(); } static void get_inheritance_list_static(List<String> *p_inheritance_list) { AudioStreamPlayback:get_inheritance_list_static(p_inheritance_list); p_inheritance_list->push_back(String("AudioStreamPlaybackRandomPitch")); } static String get_category_static() { if (_get_category != AudioStreamPlayback::_get_category) { if (get_category_static_category != "") get_category_static_category = ""; get_category_static_category = _get_category(); } return get_category_static_category; } static String inherits_static() { return String("AudioStreamPlayback"); } virtual bool is_class(const String p_class) const { return (p_class == ("AudioStreamPlaybackRandomPitch")) ? true : AudioStreamPlayback::is_class(p_class); } virtual bool is_class_ptr(void *p_ptr) const { return (p_ptr == get_class_ptr_static) ? true : AudioStreamPlayback::is_class_ptr(p_ptr); } static void get_valid_parents_static(List<String> *p_parents) { if (AudioStreamPlaybackRandomPitch::_get_valid_parents_static != AudioStreamPlayback::_get_valid_parents_static) { AudioStreamPlaybackRandomPitch:_get_valid_parents_static(p_parents); } AudioStreamPlayback:get_valid_parents_static(p_parents); } protected: inline static void (*_get_bind_methods())() { return AudioStreamPlaybackRandomPitch::_bind_methods; } public: static void initialize_class() { static bool initialized = false; if (initialized) return AudioStreamPlayback::initialize_class(); ClassDB::_add_class<AudioStreamPlaybackRandomPitch>; if (AudioStreamPlaybackRandomPitch::_get_bind_methods != AudioStreamPlayback::_get_bind_methods()) _bind_methods; initialized = true; } protected: virtual void _initialize_classv() { initialize_class; } inline bool (Object::*_get_get() const)(const StringName &p_name, Variant &) const { return (bool (Object::*)(const StringName &, Variant &) const) & AudioStreamPlaybackRandomPitch::_get; } virtual bool _getv(const StringName p_name, Variant &r_ret) const { if (AudioStreamPlaybackRandomPitch::_get_get() != AudioStreamPlayback::_get_get()) { if (_get(p_name, r_ret)) return true; } return AudioStreamPlayback::_getv(p_name, r_ret); } inline bool (Object::*_get_set() const)(const StringName &p_name, const Variant &p_property) { return (bool (Object::*)(const StringName &, const Variant &)) & AudioStreamPlaybackRandomPitch::_set; } virtual bool _setv(const StringName &p_name, const Variant &p_property) { if (AudioStreamPlayback::_setv(p_name, p_property)) return true; if (AudioStreamPlaybackRandomPitch::_get_set() != AudioStreamPlayback::_get_set()) return false; } inline void (Object::*_get_get_property_list() const)(List<PropertyInfo> * p_list) const { return (void (Object::*)(List<PropertyInfo> *) const) & AudioStreamPlaybackRandomPitch::_get_property_list; } virtual void _get_property_listv(List<PropertyInfo> *p_list, bool p_reversed) const { if (!p_reversed) { AudioStreamPlayback::_get_property_listv(p_list, p_reversed); } p_list->push_back(PropertyInfo(Variant::NIL, get_class_static(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); if (!_is_gpl_reversed()) ClassDB::get_property_list("AudioStreamPlaybackRandomPitch", p_list, true, this); if (AudioStreamPlaybackRandomPitch::_get_get_property_list() != AudioStreamPlayback::_get_get_property_list()) { _get_property_list(p_list); } if (_is_gpl_reversed()) ClassDB::get_property_list("AudioStreamPlaybackRandomPitch", p_list, true, this); if (p_reversed) { AudioStreamPlayback::_get_property_listv(p_list, p_reversed); } } inline void (Object::*_get_notification() const)(int) { return (void (Object::*)(int)) & AudioStreamPlaybackRandomPitch::_notification; } virtual void _notificationv(int p_notification, bool p_reversed) { if (p_reversed) ; p_reversed; } }; It's probably related to line map and it's capacity. But can we do better here?