Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit f7dc760

Browse files
committed
Turn on -Werror=switch
1 parent a676edd commit f7dc760

29 files changed

+205
-34
lines changed

config/mac.gypi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@
143143
'-Werror=shadow',
144144
'-Werror=unreachable-code',
145145
'-Werror=enum-compare',
146+
'-Werror=switch',
146147
],
147148
},
148149
},

engine/src/bitmapeffect.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,9 @@ static void MCBitmapEffectsSetUIntProperty(MCBitmapEffect& x_effect, MCBitmapEff
878878
}
879879
}
880880
break;
881+
default:
882+
MCUnreachableReturn();
883+
break;
881884
}
882885
}
883886

engine/src/customprinter.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,10 +365,12 @@ bool MCCustomMetaContext::candomark(MCMark *p_mark)
365365
case MARK_TYPE_LINK:
366366
// We can always render links natively - even if this is a no-op.
367367
return true;
368+
case MARK_TYPE_END:
369+
// Unknown mark so return false.
370+
return false;
368371
}
369372

370-
// Unknown mark so return false.
371-
return false;
373+
MCUnreachableReturn(false);
372374
}
373375

374376
void MCCustomMetaContext::domark(MCMark *p_mark)
@@ -2057,6 +2059,8 @@ class MCDebugPrintingDevice: public MCCustomPrintingDevice
20572059
case kMCCustomPrinterPathClose:
20582060
Print("close");
20592061
break;
2062+
case kMCCustomPrinterPathEnd:
2063+
MCUnreachable();
20602064
}
20612065
}
20622066
}

engine/src/eventqueue.cpp

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,12 +529,16 @@ static void MCEventQueueDispatchEvent(MCEvent *p_event)
529529
t_event -> custom . event -> Dispatch();
530530
break;
531531

532-
#ifdef _MOBILE
533532
case kMCEventTypeTouch:
533+
#ifdef _MOBILE
534534
handle_touch(t_event -> touch . stack, t_event -> touch . phase, t_event -> touch . id, t_event -> touch . taps, t_event -> touch . x, t_event -> touch . y);
535+
#else
536+
MCUnreachable();
537+
#endif
535538
break;
536539

537540
case kMCEventTypeMotion:
541+
#ifdef _MOBILE
538542
{
539543
MCNameRef t_message;
540544
MCStringRef t_motion;
@@ -556,28 +560,46 @@ static void MCEventQueueDispatchEvent(MCEvent *p_event)
556560

557561
MCdefaultstackptr -> getcurcard() -> message_with_valueref_args(t_message, t_motion);
558562
}
563+
#else
564+
MCUnreachable();
565+
#endif
559566
break;
560567

561568
case kMCEventTypeAcceleration:
569+
#ifdef _MOBILE
562570
{
563571
MCAutoStringRef t_value;
564572
/* UNCHECKED */ MCStringFormat(&t_value, "%.6f,%.6f,%.6f,%f", t_event -> acceleration . x, t_event -> acceleration . y, t_event -> acceleration . z, t_event -> acceleration . t);
565573
MCdefaultstackptr -> getcurcard() -> message_with_valueref_args(MCM_acceleration_changed, *t_value);
566574
}
575+
#else
576+
MCUnreachable();
577+
#endif
567578
break;
568579

569580
case kMCEventTypeOrientation:
581+
#ifdef _MOBILE
570582
MCdefaultstackptr -> getcurcard() -> message(MCM_orientation_changed);
583+
#else
584+
MCUnreachable();
585+
#endif
571586
break;
572587

573588
case kMCEventTypeLocation:
589+
#ifdef _MOBILE
574590
MCdefaultstackptr -> getcurcard() -> message(t_event -> location . error == nil ? MCM_location_changed : MCM_location_error);
591+
#else
592+
MCUnreachable();
593+
#endif
575594
break;
576595

577596
case kMCEventTypeHeading:
597+
#ifdef _MOBILE
578598
MCdefaultstackptr -> getcurcard() -> message(t_event -> location . error == nil ? MCM_heading_changed : MCM_heading_error);
579-
break;
599+
#else
600+
MCUnreachable();
580601
#endif
602+
break;
581603
}
582604
}
583605

engine/src/exec-interface-graphic.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,8 @@ void MCGraphic::SetEditMode(MCExecContext& ctxt, intenum_t mode)
245245
case kMCEditModePolygon:
246246
t_new_tool = new (nothrow) MCPolygonEditTool(this);
247247
break;
248+
case kMCEditModeNone:
249+
break;
248250
}
249251
m_edit_tool = t_new_tool;
250252

engine/src/exec.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2171,6 +2171,13 @@ extern MCExecMethodInfo *kMCStringsEvalItemOffsetMethodInfo;
21712171
extern MCExecMethodInfo *kMCStringsEvalLineOffsetMethodInfo;
21722172
extern MCExecMethodInfo *kMCStringsEvalWordOffsetMethodInfo;
21732173
extern MCExecMethodInfo *kMCStringsEvalOffsetMethodInfo;
2174+
extern MCExecMethodInfo *kMCStringsEvalTokenOffsetMethodInfo;
2175+
extern MCExecMethodInfo *kMCStringsEvalSentenceOffsetMethodInfo;
2176+
extern MCExecMethodInfo *kMCStringsEvalParagraphOffsetMethodInfo;
2177+
extern MCExecMethodInfo *kMCStringsEvalTrueWordOffsetMethodInfo;
2178+
extern MCExecMethodInfo *kMCStringsEvalCodepointOffsetMethodInfo;
2179+
extern MCExecMethodInfo *kMCStringsEvalCodeunitOffsetMethodInfo;
2180+
extern MCExecMethodInfo *kMCStringsEvalByteOffsetMethodInfo;
21742181
extern MCExecMethodInfo *kMCStringsExecReplaceMethodInfo;
21752182
extern MCExecMethodInfo *kMCStringsExecFilterWildcardMethodInfo;
21762183
extern MCExecMethodInfo *kMCStringsExecFilterRegexMethodInfo;

engine/src/funcs.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,9 +575,33 @@ void MCChunkOffset::compile(MCSyntaxFactoryRef ctxt)
575575
case CT_WORD:
576576
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalWordOffsetMethodInfo);
577577
break;
578+
case CT_TOKEN:
579+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalTokenOffsetMethodInfo);
580+
break;
578581
case CT_CHARACTER:
579582
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalOffsetMethodInfo);
580583
break;
584+
case CT_PARAGRAPH:
585+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalParagraphOffsetMethodInfo);
586+
break;
587+
case CT_SENTENCE:
588+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalSentenceOffsetMethodInfo);
589+
break;
590+
case CT_TRUEWORD:
591+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalTrueWordOffsetMethodInfo);
592+
break;
593+
case CT_CODEPOINT:
594+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalCodepointOffsetMethodInfo);
595+
break;
596+
case CT_CODEUNIT:
597+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalCodeunitOffsetMethodInfo);
598+
break;
599+
case CT_BYTE:
600+
MCSyntaxFactoryEvalMethod(ctxt, kMCStringsEvalByteOffsetMethodInfo);
601+
break;
602+
default:
603+
MCUnreachable();
604+
break;
581605
}
582606
}
583607

engine/src/ibmp.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1902,6 +1902,8 @@ bool MCXBMImageLoader::LoadHeader(uint32_t &r_width, uint32_t &r_height, uint32_
19021902
case kMCDefineYHot:
19031903
t_yhot = t_value;
19041904
break;
1905+
default:
1906+
MCUnreachable();
19051907
}
19061908
}
19071909
}
@@ -2369,13 +2371,13 @@ static bool xpm_read_v1_header(IO_handle p_stream, char x_line[XPM_MAX_LINE], ui
23692371
//t_hotspot.y = t_height / 2;
23702372
break;
23712373

2372-
//case kMCDefineXHot:
2374+
case kMCDefineXHot:
23732375
// t_hotspot.x = t_value;
2374-
// break;
2376+
break;
23752377

2376-
//case kMCDefineYHot:
2378+
case kMCDefineYHot:
23772379
// t_hotspot.y = t_value;
2378-
// break;
2380+
break;
23792381

23802382
case kMCDefineFormat:
23812383
t_format = t_value;
@@ -2388,6 +2390,10 @@ static bool xpm_read_v1_header(IO_handle p_stream, char x_line[XPM_MAX_LINE], ui
23882390
case kMCDefineCharsPerPixel:
23892391
t_chars_per_pixel = t_value;
23902392
break;
2393+
2394+
case kMCDefineUnknown:
2395+
MCUnreachable();
2396+
break;
23912397
}
23922398
}
23932399
}
@@ -2902,6 +2908,8 @@ bool MCImageEncodeRawTrueColor(MCImageBitmap *p_bitmap, IO_handle p_stream, Expo
29022908
case EX_RAW_ABGR:
29032909
MCBitmapConvertRow<EX_RAW_ABGR>(t_row_buffer, (uint32_t*)t_src_ptr, p_bitmap->width);
29042910
break;
2911+
default:
2912+
MCUnreachable();
29052913
}
29062914
t_success = IO_NORMAL == IO_write(t_row_buffer, sizeof(uint8_t), t_stride, p_stream);
29072915
t_byte_count += t_stride;

engine/src/ide.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2486,6 +2486,8 @@ struct MCIdeFilterControlsVisitor: public MCObjectVisitor
24862486
case kMCIdeFilterPropertyType:
24872487
MCStringCreateWithNativeChars((char_t*)p_object -> gettypestring(), strlen(p_object -> gettypestring()), (MCStringRef&)&t_left_value);
24882488
break;
2489+
case kMCIdeFilterPropertyNone:
2490+
break;
24892491
}
24902492

24912493
bool t_accept;
@@ -2543,6 +2545,10 @@ struct MCIdeFilterControlsVisitor: public MCObjectVisitor
25432545

25442546
}
25452547
break;
2548+
2549+
case kMCIdeFilterOperatorNone:
2550+
break;
2551+
25462552
}
25472553

25482554
if (t_accept)

engine/src/idraw.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,9 @@ void MCImage::drawwithgravity(MCDC *dc, MCRectangle r, MCGravity p_gravity)
317317
dx = r . x;
318318
dw = r . width;
319319
break;
320+
case kMCGravityNone:
321+
MCUnreachable();
322+
break;
320323
}
321324

322325
switch(p_gravity)
@@ -348,6 +351,9 @@ void MCImage::drawwithgravity(MCDC *dc, MCRectangle r, MCGravity p_gravity)
348351
dy = r . y;
349352
dh = r . height;
350353
break;
354+
case kMCGravityNone:
355+
MCUnreachable();
356+
break;
351357
}
352358

353359
drawme(dc, 0, 0, rect . width, rect . height, dx, dy, dw, dh);

0 commit comments

Comments
 (0)