Skip to content

Commit

Permalink
Do not validate options when finding non-matching
Browse files Browse the repository at this point in the history
This is a) useless because it's only used to print which options are not
default, and b) harmful because it can result in cases where things
break, like in projects that set a standard that the chosen compiler
doesn't support, but the project (or some subset) can be built with a
different standard.

Fixes: #8360
  • Loading branch information
dcbaker authored and jpakkane committed Feb 17, 2021
1 parent b6804bf commit 867963f
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 5 deletions.
7 changes: 2 additions & 5 deletions mesonbuild/interpreter.py
Original file line number Diff line number Diff line change
Expand Up @@ -2476,13 +2476,10 @@ def _redetect_machines(self):

# TODO: Why is this in interpreter.py and not CoreData or Environment?
def get_non_matching_default_options(self) -> T.Iterator[T.Tuple[str, str, coredata.UserOption]]:
env = self.environment
for def_opt_name, def_opt_value in self.project_default_options.items():
cur_opt_value = self.coredata.options.get(def_opt_name)
if cur_opt_value is not None:
def_opt_value = env.coredata.validate_option_value(def_opt_name, def_opt_value)
if def_opt_value != cur_opt_value.value:
yield (str(def_opt_name), def_opt_value, cur_opt_value)
if cur_opt_value is not None and def_opt_value != cur_opt_value.value:
yield (str(def_opt_name), def_opt_value, cur_opt_value)

def build_func_dict(self):
self.funcs.update({'add_global_arguments': self.func_add_global_arguments,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
int main(void) {
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
project(
'invalid C standard overriden to valid one',
'c',
default_options : ['c_std=invalid99'],
)

exe = executable('main', 'main.c')
test('main', exe)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"matrix": {
"options": {
"c_std": [
{ "val": "c89" }
]
}
}
}

0 comments on commit 867963f

Please sign in to comment.