Oliver Stöneberg
Oliver Stöneberg
`std::ifstream` can open directories and read from them without issue. Nothing will be read though - it is like an empty file. This would have treated an include which actually...
This regression was introduced in 8abab5c73dd6fc951cc22f21d89381e5b4e70c7d. `std::equal()` is supposed to be faster than `std::string::compare()` and a benchmark even supports this: https://quick-bench.com/q/JkxxUMqC8wLufOw7AUI-l1K-n7Q. But somehow in our code it leads to a...
If the value is unknown we are silently setting an invalid/unexcepted value for the predefined macros which might lead to other issues.
`realFilename()` does nothing on non-Windows platforms but that leads to inconsistent behavior with case insensitive filesystems. File on disk: `lower.cpp` Result on Windows (case insensitive filesystem) for `Lower.cpp`: `lower.cpp` Result...
The check in `simplecpp::preprocess` obviously didn't work if `gnu++` or another alias were used. Also the simplification should only be performed if supported. This does not fix the hang tracked...
The MacOS filesystem is case insensitive by default but we treat it like Linux which is case insensitive by default.
Instead of duplicating the macro references into each token we should just keep references to the tokens in the macros.
Currently `DUI` only contains `includePaths` which are used for any include no matter if local or system. There's also no support for `-isystem` in the `simplecpp` command-line tool.
The `new`/`delete` calls for the `Token` allocations make up more than 30% of the Ir count when profiling with `callgrind`. It might make sense to implement a custom allocator or...