Skip to content

Commit bf26352

Browse files
committed
fixes #352 - internally default to latest standard if none is provided
1 parent 4db4304 commit bf26352

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

simplecpp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2554,7 +2554,7 @@ static void simplifySizeof(simplecpp::TokenList &expr, const std::map<std::strin
25542554
static bool isCpp17OrLater(const simplecpp::DUI &dui)
25552555
{
25562556
const std::string std_ver = simplecpp::getCppStdString(dui.std);
2557-
return !std_ver.empty() && (std_ver >= "201703L");
2557+
return std_ver.empty() || (std_ver >= "201703L");
25582558
}
25592559

25602560
static bool isGnu(const simplecpp::DUI &dui)

test.cpp

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1562,11 +1562,11 @@ static void has_include_1()
15621562
"#endif";
15631563
simplecpp::DUI dui;
15641564
dui.includePaths.push_back(testSourceDir);
1565+
ASSERT_EQUALS("\n\nA", preprocess(code, dui)); // we default to latest standard internally
15651566
dui.std = "c++17";
15661567
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
15671568
dui.std = "c++14";
15681569
ASSERT_EQUALS("", preprocess(code, dui));
1569-
ASSERT_EQUALS("", preprocess(code));
15701570
}
15711571

15721572
static void has_include_2()
@@ -1580,9 +1580,11 @@ static void has_include_2()
15801580
"#endif";
15811581
simplecpp::DUI dui;
15821582
dui.includePaths.push_back(testSourceDir);
1583+
ASSERT_EQUALS("\n\nA", preprocess(code, dui)); // we default to latest standard internally
1584+
dui.std = "c++14";
1585+
ASSERT_EQUALS("", preprocess(code, dui));
15831586
dui.std = "c++17";
15841587
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
1585-
ASSERT_EQUALS("", preprocess(code));
15861588
}
15871589

15881590
static void has_include_3()
@@ -1595,13 +1597,19 @@ static void has_include_3()
15951597
" #endif\n"
15961598
"#endif";
15971599
simplecpp::DUI dui;
1600+
ASSERT_EQUALS("\n\n\n\nB", preprocess(code, dui)); // we default to latest standard internally
1601+
dui.std = "c++14";
1602+
ASSERT_EQUALS("", preprocess(code, dui));
15981603
dui.std = "c++17";
15991604
// Test file not found...
16001605
ASSERT_EQUALS("\n\n\n\nB", preprocess(code, dui));
16011606
// Unless -I is set (preferably, we should differentiate -I and -isystem...)
16021607
dui.includePaths.push_back(testSourceDir + "/testsuite");
16031608
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
1604-
ASSERT_EQUALS("", preprocess(code));
1609+
dui.std = "c++14";
1610+
ASSERT_EQUALS("", preprocess(code, dui));
1611+
dui.std = "";
1612+
ASSERT_EQUALS("\n\nA", preprocess(code, dui)); // we default to latest standard internally
16051613
}
16061614

16071615
static void has_include_4()
@@ -1614,10 +1622,12 @@ static void has_include_4()
16141622
" #endif\n"
16151623
"#endif";
16161624
simplecpp::DUI dui;
1625+
dui.includePaths.push_back(testSourceDir); // we default to latest standard internally
1626+
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
1627+
dui.std = "c++14";
1628+
ASSERT_EQUALS("", preprocess(code, dui));
16171629
dui.std = "c++17";
1618-
dui.includePaths.push_back(testSourceDir);
16191630
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
1620-
ASSERT_EQUALS("", preprocess(code));
16211631
}
16221632

16231633
static void has_include_5()
@@ -1630,10 +1640,12 @@ static void has_include_5()
16301640
" #endif\n"
16311641
"#endif";
16321642
simplecpp::DUI dui;
1633-
dui.std = "c++17";
1643+
ASSERT_EQUALS("\n\nA", preprocess(code, dui)); // we default to latest standard internally
16341644
dui.includePaths.push_back(testSourceDir);
1645+
dui.std = "c++14";
1646+
ASSERT_EQUALS("", preprocess(code, dui));
1647+
dui.std = "c++17";
16351648
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
1636-
ASSERT_EQUALS("", preprocess(code));
16371649
}
16381650

16391651
static void has_include_6()
@@ -1646,10 +1658,12 @@ static void has_include_6()
16461658
" #endif\n"
16471659
"#endif";
16481660
simplecpp::DUI dui;
1649-
dui.std = "gnu99";
16501661
dui.includePaths.push_back(testSourceDir);
1662+
ASSERT_EQUALS("\n\nA", preprocess(code, dui)); // we default to latest standard internally
1663+
dui.std = "c++99";
1664+
ASSERT_EQUALS("", preprocess(code, dui));
1665+
dui.std = "gnu99";
16511666
ASSERT_EQUALS("\n\nA", preprocess(code, dui));
1652-
ASSERT_EQUALS("", preprocess(code));
16531667
}
16541668

16551669
static void strict_ansi_1()
@@ -2983,6 +2997,7 @@ static void stdcVersionDefine()
29832997
" __STDC_VERSION__\n"
29842998
"#endif\n";
29852999
simplecpp::DUI dui;
3000+
ASSERT_EQUALS("", preprocess(code, dui));
29863001
dui.std = "c11";
29873002
ASSERT_EQUALS("\n201112L", preprocess(code, dui));
29883003
}
@@ -2993,6 +3008,7 @@ static void cpluscplusDefine()
29933008
" __cplusplus\n"
29943009
"#endif\n";
29953010
simplecpp::DUI dui;
3011+
ASSERT_EQUALS("", preprocess(code, dui));
29963012
dui.std = "c++11";
29973013
ASSERT_EQUALS("\n201103L", preprocess(code, dui));
29983014
}

0 commit comments

Comments
 (0)