<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJytVNtu2zAM_Rr5hZjh2HGaPPihTRqgQLEW2MOAvSkSY6uVJUOXpf37UXbWy3odNoOQJYs-4jkktbPyvvneKY0Q3L0yLQQLe3UH3vYIg7M7jb2Hgwod9PcgNCeXQcdWGVauQVt7ixJ4IP_oBIKwEsHugS2K0ZdVp2Rr2w90hLswPnAjcPoqHPKAa_oj7WsMypq1NT726Fi5ZOWKUIAbCYrwMcXhox-UUDb6FGc_AhUbVpyS59HGpSCYANfceZTfxsgureDpAGDlgubAqg20GLbOmoBGXg3BT2fmzwM6Daw6m0AV0Uous9fCXQE7OfoBBRvepnX0AfiAP0V37ZBSINB7-1uRcv0I8O5DJPMtif6Vk0yUqrS-VOZhvrY69ubzeB-KhdPnz-Jp_bOf6sDG33BHqx6E_Ejyav3S4NBRPSqqkI4GqgSpxsTvScNq-xidwxCdeTiMnWwAtcfjmeeGU-k_T847SflT7s-J8FZOVn9RTyZqPQT3XLeX3F5tk2m8oLYaBkvUQ1IudPhEtQP31GfchNRwO1LHwMCVm26E5EpgR9lSt-5Q2wM5-YBcposguRA6OrAGc7hyqZlvInWn72zUktieBMA75UMO5wRKnoe0AT2_ReitQ6JPd0Ymm0quqhXPeAyddc15a90t_5FFp5suhMGnaiq3ZC3BxF0ubE-Lsc6m1xfK2w2KQEvlfUSqum1d1fM665pC7hdSCL4rCzGX1QKLellXi9XJsp7N5HKfaU7cfMPqM1aWBolkgqA5qzfZv0egmrIoyYpyVqchX6CY1SvOF4IEni8FmxfYc6XzhJNb12auGSF3sfW0qUlB_7jJvVetQRwDpgiDChqbKymf5JZy-R8u6Wxk0ow0fgEuVPLz>53545</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Odd condition in clang::CompilerInstance::createCodeCompletionConsumer()
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          EgorkaZ
      </td>
    </tr>
</table>

<pre>
    While trying to fix some problems with my clang plugin, looked at source code of `clang::CompilerInstance::createCodeCompletionConsumer()` and it seems suspicious to me:
```
const ParsedSourceLocation &Loc = getFrontendOpts().CodeCompletionAt;
if (!CompletionConsumer) {
  setCodeCompletionConsumer(
    createCodeCompletionConsumer(getPreprocessor(),
                                 Loc.FileName, Loc.Line, Loc.Column,
                                 getFrontendOpts().CodeCompleteOpts,
                                 llvm::outs()));
  if (!CompletionConsumer) <<<<<<< what is this condition for?
    return;
} else if (EnableCodeCompletion(getPreprocessor(), Loc.FileName,
                                Loc.Line, Loc.Column)) {
  setCodeCompletionConsumer(nullptr);
  return;
}
```

I suppose that the condition was meant to be in pair with the `else if` below instead of the upper one. Or it just shouldn't exist. Either would make more sence
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVNtu2zAM_Rr5hZgR23GaPPihdRqgQLEW2MOAvckyY6uVJUOXpf37UXZ6W68DFhCOZNGHh4ekGtPeVz97qRC8vZe6A29gL-_AmQFhtKZRODg4SN_DcA9CcXIZVeikZnkNyphbbIF78g9WIAjTIpg9sNVi8mXFKVlthpFC2AvtPNcC57fCIvdY0xfxXKGXRtdGuzCgZfma5RtCAa5bkISPkYcLbpRCmuAiz2ECWmzZ4pQ8jzZtBcF4uObWYftjYnZpBI8BgOUrWgMrttCh31mjPer2avRujpm-JHTqWXE2g0pKK7pkb9HdADs5-gGR9e-ndfQB-CR_YndtkUog0DnzoEhePwF8-KMk0x2J_p2TTFSquL-U-nFdGxUG_XW8T8XC-fVX8ZT6Pcx9YMID3NGKRyE_k7yoXxsceupHSR3S04M6oZVT4fekYbF7YmfRB6sfg7GTLaByeIx5rjm1_svifFCUv-X-mgjv1WTzD_2kg1Kjty91e53bm2MyPy9orMbRUOo-Kud7fKbagTuaM659HLiG1NEwcmnnGyG6EthRtjitDSpzICfnkbfxIoguhI4WjMYUrmwc5ptA0-l6E1RL2Z54wDvpfArnBEqeh3gAA79FGIxFSp_ujKStinZTbHjipVdYXbXtM5pE6z_cN0mwquq9H138It-RdUQpNKkwA22mnp3_vlEP3KDwtJXOBaQO3pVFuSyTvsraZdZk2ToTG4HlvlwV62bF23K5b1brdb5OFCedXMXKM5bnGkmwCEFrVm4TWeWLnGyRZ2V8pCsUWbnhfCVI6uVasOUCBy5VGnmkxnaJrSZKTegcHSrS0j0dcudkpxGncITPg--Nrc47Y2_5r2QKXU3U_wC3dN1U">