https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69177
--- Comment #7 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Author: dmalcolm Date: Thu Jan 14 19:10:17 2016 New Revision: 232379 URL: https://gcc.gnu.org/viewcvs?rev=232379&root=gcc&view=rev Log: PR preprocessor/69177 and PR c++/68819: libcpp fallbacks and -Wmisleading-indentation gcc/c-family/ChangeLog: PR c++/68819 * c-indentation.c (get_visual_column): Add location_t param. Handle the column number being zero by effectively disabling the warning, with an "inform". (should_warn_for_misleading_indentation): Add location_t argument for all uses of get_visual_column. gcc/testsuite/ChangeLog: PR c++/68819 PR preprocessor/69177 * gcc.dg/plugin/location-overflow-test-1.c: New test case. * gcc.dg/plugin/location-overflow-test-2.c: New test case. * gcc.dg/plugin/location_overflow_plugin.c: New test plugin. * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above. libcpp/ChangeLog: PR preprocessor/69177 * line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New constant. (LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests to comment. (can_be_stored_compactly_p): Reduce threshold from LINE_MAP_MAX_LOCATION_WITH_COLS to LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES. (get_combined_adhoc_loc): Likewise. (get_range_from_loc): Likewise. (linemap_line_start): Ensure that a new ordinary map is created when transitioning from range-packing being enabled to disabled, at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold. Set range_bits to 0 for new ordinary maps when beyond this limit. Prevent the "increase the column bits of a freshly created map" optimization if the range bits has reduced. Added: trunk/gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c trunk/gcc/testsuite/gcc.dg/plugin/location-overflow-test-2.c trunk/gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.c Modified: trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c-indentation.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/plugin/plugin.exp trunk/libcpp/ChangeLog trunk/libcpp/line-map.c