mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Version bump, add -O0+ and -O1+, let stdlib override nostdlib
This commit is contained in:
@@ -97,6 +97,8 @@ static void usage(void)
|
||||
OUTPUT(" -O3 - Aggressive optimization.");
|
||||
OUTPUT(" -Os - Optimize for size.");
|
||||
OUTPUT(" -Oz - Optimize for tiny size.");
|
||||
OUTPUT(" -O0+ - No optimization, single module");
|
||||
OUTPUT(" -O1+ - Simple optimizations, single module.");
|
||||
OUTPUT(" -O2+ - Default optimization level, single module");
|
||||
OUTPUT(" -O3+ - Aggressive optimization, single module.");
|
||||
OUTPUT(" -Os+ - Optimize for size, single module.");
|
||||
@@ -395,10 +397,18 @@ static void parse_option(BuildOptions *options)
|
||||
{
|
||||
FAIL_WITH_ERR("Multiple optimization levels were set.");
|
||||
}
|
||||
if (match_shortopt("O0"))
|
||||
if (match_shortopt("O0+"))
|
||||
{
|
||||
options->optimization_setting_override = OPT_SETTING_O0_PLUS;
|
||||
}
|
||||
else if (match_shortopt("O0"))
|
||||
{
|
||||
options->optimization_setting_override = OPT_SETTING_O0;
|
||||
}
|
||||
else if (match_shortopt("O1+"))
|
||||
{
|
||||
options->optimization_setting_override = OPT_SETTING_O1_PLUS;
|
||||
}
|
||||
else if (match_shortopt("O1"))
|
||||
{
|
||||
options->optimization_setting_override = OPT_SETTING_O1;
|
||||
@@ -615,6 +625,7 @@ static void parse_option(BuildOptions *options)
|
||||
{
|
||||
if (at_end() || next_is_opt()) error_exit("error: --stdlib needs a directory.");
|
||||
options->std_lib_dir = check_dir(next_arg());
|
||||
options->no_stdlib = false;
|
||||
return;
|
||||
}
|
||||
if (match_longopt("nostdlib"))
|
||||
|
||||
@@ -89,7 +89,9 @@ typedef enum
|
||||
{
|
||||
OPT_SETTING_NOT_SET = -1,
|
||||
OPT_SETTING_O0 = 0,
|
||||
OPT_SETTING_O0_PLUS,
|
||||
OPT_SETTING_O1,
|
||||
OPT_SETTING_O1_PLUS,
|
||||
OPT_SETTING_O2,
|
||||
OPT_SETTING_O2_PLUS,
|
||||
OPT_SETTING_O3,
|
||||
|
||||
@@ -129,11 +129,17 @@ static void update_build_target_from_options(BuildTarget *target, BuildOptions *
|
||||
// Copy optimization levels.
|
||||
switch (options->optimization_setting_override)
|
||||
{
|
||||
case OPT_SETTING_O0_PLUS:
|
||||
target->single_module = true;
|
||||
FALLTHROUGH;
|
||||
case OPT_SETTING_O0:
|
||||
target->optimization_level = OPTIMIZATION_NONE;
|
||||
target->size_optimization_level = SIZE_OPTIMIZATION_NONE;
|
||||
target->feature.safe_mode = true;
|
||||
break;
|
||||
case OPT_SETTING_O1_PLUS:
|
||||
target->single_module = true;
|
||||
FALLTHROUGH;
|
||||
case OPT_SETTING_O1:
|
||||
target->optimization_level = OPTIMIZATION_LESS;
|
||||
target->size_optimization_level = SIZE_OPTIMIZATION_NONE;
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define COMPILER_VERSION "0.3.79"
|
||||
#define COMPILER_VERSION "0.3.80"
|
||||
Reference in New Issue
Block a user