summaryrefslogtreecommitdiff
path: root/libcpp/line-map.c
diff options
context:
space:
mode:
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-08 17:33:45 +0000
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-08 17:33:45 +0000
commit86e0b129b4e7018bf7ca98a589d162aa4d0a4b76 (patch)
tree9fcd123fd85a32e3a218356b240e6888a8a295fa /libcpp/line-map.c
parentdac01e13c6706b484d3ccd451b72c95710986038 (diff)
downloadgcc-86e0b129b4e7018bf7ca98a589d162aa4d0a4b76.tar.gz
PR preprocessor/69664: fix rich_location::override_column
gcc/testsuite/ChangeLog: PR preprocessor/69664 * gcc.dg/cpp/trad/comment-2.c: Add expected column number. * gcc.dg/cpp/warn-comments.c: Likewise. libcpp/ChangeLog: PR preprocessor/69664 * errors.c (cpp_diagnostic_with_line): Only call rich_location::override_column if the column is non-zero. * line-map.c (rich_location::override_column): Update columns within m_ranges[0]. Add assertions to verify that doing so is sane. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233223 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libcpp/line-map.c')
-rw-r--r--libcpp/line-map.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libcpp/line-map.c b/libcpp/line-map.c
index fcf025956d1..e9175dfa307 100644
--- a/libcpp/line-map.c
+++ b/libcpp/line-map.c
@@ -2036,13 +2036,22 @@ rich_location::lazily_expand_location ()
return m_expanded_location;
}
-/* Set the column of the primary location. */
+/* Set the column of the primary location. This can only be called for
+ rich_location instances for which the primary location has
+ caret==start==finish. */
void
rich_location::override_column (int column)
{
lazily_expand_location ();
+ gcc_assert (m_ranges[0].m_show_caret_p);
+ gcc_assert (m_ranges[0].m_caret.column == m_expanded_location.column);
+ gcc_assert (m_ranges[0].m_start.column == m_expanded_location.column);
+ gcc_assert (m_ranges[0].m_finish.column == m_expanded_location.column);
m_expanded_location.column = column;
+ m_ranges[0].m_caret.column = column;
+ m_ranges[0].m_start.column = column;
+ m_ranges[0].m_finish.column = column;
}
/* Add the given range. */