Skip to content

llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h:213: Missing default in switch ? #107739

@dcb314

Description

@dcb314

Static analyser cppcheck says:

llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h:213:23: error: Found an exit path from function with non-void return type that has missing return statement [missingReturn]

Source code is

inline static const char *AddrModeToString(AddrMode addrmode) {
switch (addrmode) {
case AddrModeNone: return "AddrModeNone";
case AddrMode1: return "AddrMode1";
case AddrMode2: return "AddrMode2";
case AddrMode3: return "AddrMode3";
case AddrMode4: return "AddrMode4";
case AddrMode5: return "AddrMode5";
case AddrMode5FP16: return "AddrMode5FP16";
case AddrMode6: return "AddrMode6";
case AddrModeT1_1: return "AddrModeT1_1";
case AddrModeT1_2: return "AddrModeT1_2";
case AddrModeT1_4: return "AddrModeT1_4";
case AddrModeT1_s: return "AddrModeT1_s";
case AddrModeT2_i12: return "AddrModeT2_i12";
case AddrModeT2_i8: return "AddrModeT2_i8";
case AddrModeT2_i8pos: return "AddrModeT2_i8pos";
case AddrModeT2_i8neg: return "AddrModeT2_i8neg";
case AddrModeT2_so: return "AddrModeT2_so";
case AddrModeT2_pc: return "AddrModeT2_pc";
case AddrModeT2_i8s4: return "AddrModeT2_i8s4";
case AddrMode_i12: return "AddrMode_i12";
case AddrModeT2_ldrex:return "AddrModeT2_ldrex";
case AddrModeT2_i7s4: return "AddrModeT2_i7s4";
case AddrModeT2_i7s2: return "AddrModeT2_i7s2";
case AddrModeT2_i7: return "AddrModeT2_i7";
}
}

Suggest add default to switch. Perhaps

default: assert( 0); 

would be enough.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions