diff options
Diffstat (limited to 'src/compiler')
3 files changed, 12 insertions, 7 deletions
diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y b/src/compiler/glsl/glcpp/glcpp-parse.y index ccb3aa18d36..d83f99f1c7e 100644 --- a/src/compiler/glsl/glcpp/glcpp-parse.y +++ b/src/compiler/glsl/glcpp/glcpp-parse.y @@ -462,13 +462,8 @@ control_line_error: integer_constant: INTEGER_STRING { - if (strlen ($1) >= 3 && strncmp ($1, "0x", 2) == 0) { - $$ = strtoll ($1 + 2, NULL, 16); - } else if ($1[0] == '0') { - $$ = strtoll ($1, NULL, 8); - } else { - $$ = strtoll ($1, NULL, 10); - } + /* let strtoll detect the base */ + $$ = strtoll ($1, NULL, 0); } | INTEGER { $$ = $1; diff --git a/src/compiler/glsl/glcpp/tests/149-hex-const-uppercase-prefix.c b/src/compiler/glsl/glcpp/tests/149-hex-const-uppercase-prefix.c new file mode 100644 index 00000000000..1be9b28eb79 --- /dev/null +++ b/src/compiler/glsl/glcpp/tests/149-hex-const-uppercase-prefix.c @@ -0,0 +1,5 @@ +#if 0x1234abcd == 0X1234abcd +success +#else +failure +#endif diff --git a/src/compiler/glsl/glcpp/tests/149-hex-const-uppercase-prefix.c.expected b/src/compiler/glsl/glcpp/tests/149-hex-const-uppercase-prefix.c.expected new file mode 100644 index 00000000000..4cf250f6bb9 --- /dev/null +++ b/src/compiler/glsl/glcpp/tests/149-hex-const-uppercase-prefix.c.expected @@ -0,0 +1,5 @@ + +success + + + |