In this paper we investigate the impact of puncturing on a given information set. This study is necessary to design a good rate-compatible puncturing pattern for hybrid automatic repeat request based on incremental redundancy (HARQ-IR) since an information set should be unchanged during retransmission. We first identify that for an information set, there exist the so-called catastrophic puncturing patterns which will surely lead to a block error. We further present a recursive algorithm to characterize such puncturing patterns and their weight distributions. Based on this analysis, we propose an efficient greedy algorithm to construct a non-catastrophic puncturing pattern for a given information set. Leveraging this, we construct a rate-compatible polar code that supports various rates using non-catastrophic puncturing patterns. Finally, we demonstrate that it can outperform Turbo code adopted in LTE.