I contacted @fran-cabrera from the IBMQ team and he could reproduce the bug!
The problem is with the visualization of the transpiled circuit, not the execution (the result should be correct). The team is working on solving it and they expect to deploy a fix at the end of the week.
I ran you example in Qiskit and it seems to work
IBMQ.load_account()
provider = IBMQ.get_provider(group='open')
device = provider.get_backend('ibmq_16_melbourne')
qasm_string = """
OPENQASM 2.0;
include "qelib1.inc";
qreg q[3];
creg c[3];
h q[1];
cx q[1],q[2];
cx q[0],q[1];
h q[0];
measure q[1] -> c[1];
if(c==1) x q[2];
measure q[0] -> c[0];
if(c==1) z q[2];
measure q[2] -> c[2];
"""
circuit = QuantumCircuit.from_qasm_str(qasm_string)
circuit.draw('text')
┌───┐┌─┐
q_0: |0>─────────────■───┤ H ├┤M├──────────
┌───┐ ┌─┴─┐ └┬─┬┘└╥┘
q_1: |0>┤ H ├──■───┤ X ├──┤M├──╫───────────
└───┘┌─┴─┐ ├───┤ └╥┘ ║ ┌───┐ ┌─┐
q_2: |0>─────┤ X ├─┤ X ├───╫───╫──┤ Z ├─┤M├
└───┘ └─┬─┘ ║ ║ └─┬─┘ └╥┘
┌──┴──┐ ║ ║ ┌──┴──┐ ║
c_0: 0 ══════════╡ ╞══╬═══╩═╡ ╞═╬═
│ │ ║ │ │ ║
c_1: 0 ══════════╡ = 1 ╞══╩═════╡ = 1 ╞═╬═
│ │ │ │ ║
c_2: 0 ══════════╡ ╞════════╡ ╞═╩═
└─────┘ └─────┘
result = transpile(circuit,
backend=provider.get_backend('ibmq_16_melbourne'),
seed_transpiler=42)
result.draw('text', idle_wires=False)
┌──────────┐┌─┐
q_0 -> 0 |0>────────────────────────■───────┤ U2(0,pi) ├┤M├─────────────
┌──────────┐ ┌─┴─┐ └───┬─┬────┘└╥┘
q_1 -> 1 |0>┤ U2(0,pi) ├──■───────┤ X ├─────────┤M├──────╫──────────────
└──────────┘┌─┴─┐┌────┴───┴────┐ └╥┘ ║ ┌────────┐┌─┐
q_2 -> 2 |0>────────────┤ X ├┤ U3(pi,0,pi) ├─────╫───────╫─┤ U1(pi) ├┤M├
└───┘└──────┬──────┘ ║ ║ └───┬────┘└╥┘
┌──┴──┐ ║ ║ ┌──┴──┐ ║
c_0: 0 ═════════════════════╡ ╞═════════╬═══════╩══╡ ╞═══╬═
│ │ ║ │ │ ║
c_1: 0 ═════════════════════╡ = 1 ╞═════════╩══════════╡ = 1 ╞═══╬═
│ │ │ │ ║
c_2: 0 ═════════════════════╡ ╞════════════════════╡ ╞═══╩═
└─────┘ └─────┘
Based on this, I think your example should work in the IQX jupyter notebooks, included in the IBM Quantum Experience.