[llvm-commits] [llvm] r86897 - /llvm/trunk/lib/CodeGen/AsmPrinter/DwarfException.cpp

Bill Wendling isanbard at gmail.com
Thu Nov 12 01:52:35 PST 2009


On Nov 12, 2009, at 1:48 AM, Duncan Sands wrote:

>> +          bool DoesNotThrow = false;
>> +          for (unsigned OI = 0, OE = MI->getNumOperands(); OI != OE; ++OI) {
>> +            const MachineOperand &MO = MI->getOperand(OI);
>> +
>> +            if (MO.isGlobal()) {
>> +              if (Function *F = dyn_cast<Function>(MO.getGlobal())) {
>> +                if (F->doesNotThrow()) {
>> +                  DoesNotThrow = true;
>> +                  break;
>> +                }
>> +              }
>> +            }
>> +          }
> 
> doesn't this mean that if a pointer to a nounwind function is passed as a
> call parameter (rather than as the callee), then DoesNotThrow is set to true?
> 
If such an instruction existed, then I suppose. What's the best way to determine that it's the "callee" and not a parameter? Do you have an example to work with?

-bw





More information about the llvm-commits mailing list